python / python/pyperformance

Add additional GC related benchmark

Offen
#437 4 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Python
Sterne
1k
Forks
203
Ø Merge
1 Std. 20 Min.
Gemergte PRs (30 T.)
2

Beschreibung

Given this performance regression in Python 3.14, it would be nice if we had a benchmark which would have more clearly shown it before final release. I have a new GC specific benchmark but it doesn't do things that would show this regression.

We should consider adding a new benchmark. The key features would be:

  • creating a bunch of net new container objects, in order to trigger many, potentially young generation, collections
  • creating tuple objects that can be untracked by the GC, in order to avoid slowing down full collections

Ideally we prefer to avoid a micro or synthetic benchmark and instead find some kind of real application that shows this regression. E.g. near the 3.13 release, we found a GC regression shown by Sphinx building Python docs. Something like that would be good.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Lies zuerst die verlinkte Performance-Regression in Python 3.14 und den bestehenden GC-spezifischen Benchmark im Pull Request 381. Untersuche einen Benchmark einer realen Anwendung statt eines synthetischen Microbenchmarks, der viele neue Container-Objekte und nicht trackbare Tupel erzeugt und die Regression sichtbar macht; als abgeschlossen gilt die Aufgabe, wenn der Benchmark dieses Verhalten vor dem Release eindeutig zeigt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
performance
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.