python / python/cpython

Add names to gathered stats for some events.

Aberta
#120,996 1 comentário 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

performance
Linguagem predominante
Python
Estrelas
77.2k
Forks
35.9k
Métricas de merge de PRs
Métricas de PR pendentes

Descrição

Motivation

Sometimes we need to classify stats by name from an unknown set.
For example, 94% of the specialization failures for the CALL instruction is "class no vectorcall".
This is valuable information and suggests we need to implement more vectorcalls for classes.
But it doesn't tell us which classes lack vectorcalls.

Proposal

For some stats, e.g. call specialization we add the ability to record names.
If we record the first N names seen, provided N is large enough, we will see the most common names.
To avoid complications with objects and memory allocation distorting the stats, we can pre-allocate a fixed size array char names[N][M], as well as the usual table of uint64_t counts. For a table size 256, with up to 63 char names, this only uses 18kb.

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Comece revisando a implementação das estatísticas de especialização de chamadas e como seus eventos são representados. Defina como uma tabela de nomes de tamanho fixo e contadores capturaria os primeiros N nomes sem efeitos sobre objetos ou alocações e, em seguida, verifique se as estatísticas resultantes identificam nomes comuns, como classes sem vectorcalls.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
python
Domínio
performance
Tipo de issue
Funcionalidade
Dificuldade
5/5
Tempo estimado
Mais de uma semana
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
35/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.