Improving representative benchmarks for typing ecosystem
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- python
- Área
- performance
Línea de trabajo
Empieza revisando las tres áreas de benchmarks descritas en el issue y los benchmarks existentes de pydantic enlazados allí. Compara esas opciones con la suite actual de benchmarks de pyperformance y, después, aclara qué casos y programas de benchmark deberían incluirse. Se considerará terminado cuando se haya acordado un alcance representativo de benchmarks y los benchmarks seleccionados se hayan incorporado upstream.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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).
- Lenguaje dominante
- Python
- Estrellas
- 1k
- Forks
- 203
- Merge medio
- 1 h 20 min
- PR fusionados (30 d)
- 2
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de python/pyperformance
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
python/pyperformance#346 · 3 comentarios ·
-
python/pyperformance#474 · 4 reacciones · 1 asignado ·
-
Enable decimal benchmarks Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 25/100
python/pyperformance#473 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
python/pyperformance#464 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
python/pyperformance#460 · 2 comentarios · 1 reacción ·
Todos los issues de python/pyperformance
Issues similares
-
Add: hunch Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
AbdelStark/awesome-typesafe#104 ·
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
DiamondLightSource/dodal#2211 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
openml/openml-python#1749 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
sipyourdrink-ltd/bernstein#6191 ·