Allow calculating geometric mean of groups of benchmarks based on tags
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 1k
- Forks
- 203
- Merge moyen
- 1 h 20 min
- PR mergées (30 j)
- 2
Description
[Moved from https://github.com/faster-cpython/ideas/discussions/395]
It's becoming obvious that:
- The pyperformance suite needs more benchmarks that are more similar to real-world workloads, and we should lean into optimizing for these and using these to report progress.
- Microbenchmarks of a particular feature are also useful and belong in the benchmark suite, but we shouldn't over-optimize for them or use them as a (misleading) indicator of overall progress.
It seems that one way to address this would be to lean into "tags" more in the pyperformance/pyperf ecosystem. pyperformance already allows for tags in each benchmark's pyproject.yaml.
I propose we:
- Output the tags for each benchmark in the benchmark results in the
metadatadictionary. pyperfcompare_towould then calculate the geometric mean for each subset of benchmarks for each tag found in the results, as well as "all" benchmarks (existing behavior). This could be behind a flag if backward compatibility matters.
Alternatives:
We could instead use the nested benchmark heirarchy, rather than tags. Personally, I think tags is easier to understand and more flexible (a benchmark could be associated with multiple tags).
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par retracer la manière dont les tags de benchmark de pyperformance's pyproject.yaml sont représentés dans les résultats et les métadonnées des benchmarks, puis examinez le flux compare_to de pyperf. La tâche est terminée lorsque les tags sont exposés dans les métadonnées et que des moyennes géométriques sont calculées pour chaque sous-ensemble de tags ainsi que pour l’ensemble des benchmarks, le comportement de rétrocompatibilité ayant été résolu.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- performance, tooling
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 32/100