python / python/cpython

Reduce overhead of pushing and popping frames in Python-to-Python calls.

Offen
#93,897 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

3.12 interpreter-core performance
Vorherrschende Sprache
Python
Sterne
77.2k
Forks
36k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

The cost of pushing a frame for Python-to-Python calls is much lower than it used to be, but still considerably higher than it could be.

Pushing a frame should be little more than a space check and a pointer bump. Similarly popping the frame, should just be a pointer adjustment.

We want to be able to add "shim" and proxy frames for performance and debugging. To be able to do that, the cost of frame popping and pushing should be as low as possible.

Beitragsleitfaden

Beitragsleitfaden öffnen

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

Es werden keine Dateien, Tests oder konkreten Einstiegspunkte genannt. Beginne damit, die Implementierung des Pushens und Poppens von Frames für Python-to-Python-Aufrufe zu finden, und ermittle anschließend Messwerte für den aktuellen Overhead; abgeschlossen ist die Arbeit, wenn diese Operationen auf die genannten Ziele für den Space-Check, den Pointer-Bump und die Pointer-Anpassung hin reduziert werden, wobei die Unterstützung für Shim- und Proxy-Frames erhalten bleibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

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

Neue Issues direkt in Ihr Postfach

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