Improving representative benchmarks for typing ecosystem
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 25/100
- Tipo de issue
- Funcionalidade
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Stack de tecnologia
- python
- Domínio
- performance
Direção de pesquisa
Comece revisando as três áreas de benchmark descritas na issue e os benchmarks existentes do pydantic vinculados nela. Compare essas opções com a suíte atual de benchmarks do pyperformance e, em seguida, esclareça quais casos e programas de benchmark devem ser incluídos. O trabalho estará concluído quando um escopo representativo de benchmarks tiver sido acordado e os benchmarks selecionados tiverem sido incorporados upstream.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Due to a current lack of representative macrobenchmarks, it is very difficult to decide on whether complex accelerators for some parts of typing are worth implementing in the future. Hence, I'm trying to upstream some benchmarks into pyperformance.
IMO, there are three main areas:
- Performance of static type checkers implemented in Python (e.g. mypy). (Fixed by #102)
- Performance of programs using types at runtime (e.g. pydantic, attrs, etc.).
- Runtime overhead of typed code vs fully untyped code.
For case 2, I plan to use one of pydantic's benchmarks here https://github.com/samuelcolvin/pydantic/tree/master/benchmarks, installed without compiled binaries.
Case 3 is very tricky because there are so many ways to use typing. I don't know how often people use certain features, whether they type-hint inside tight loops, etc. So I'm struggling to find a good benchmark. An idea: grabbing one of the existing pyperformance benchmarks, fully type-hinting it, then comparing the performance delta may work.
CC @JelleZijlstra, I would greatly appreciate hearing your opinion on this (especially for case 3). Maybe I can post this on typing-sig too if I need more help.
Afterword:
All 3 cases benefit from general CPython optimizations. But usually only 3. benefits greatly from typing module-only optimizations (with 1. maybe not improving much if at all, depending on implementation).
- Linguagem predominante
- Python
- Estrelas
- 1k
- Forks
- 203
- Merge médio
- 1h 20min
- PRs com merge (30d)
- 2
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de python/pyperformance
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
python/pyperformance#346 · 3 comentários ·
-
python/pyperformance#474 · 4 reações · 1 responsável ·
-
Enable decimal benchmarks Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 25/100
python/pyperformance#473 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
python/pyperformance#464 ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
python/pyperformance#460 · 2 comentários · 1 reação ·
Todas as issues de python/pyperformance
Issues semelhantes
-
货币战争手改优先级配置缺少列表元素类型校验(P3) Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
syfoud/Simulated_Scepter#172 ·
-
A cancelled tests run makes the coverage comment workflow fail and reports it as a red check on main Abertaarea: ci bug perceived difficulty: 3
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Nitjsefnie-Harness-Commons/daedalus#921 · 1 comentário ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
EleutherAI/lm-evaluation-harness#4207 ·
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 92/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
ClickHouse/clickhouse-connect#1057 ·