benchmark representing async-heavy, heterogeneous workload
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 30/100
- Issue-Typ
- Feature
- Klarheit
- Muss geklärt werden
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- python
- Bereich
- performance
Rechercherichtung
Beginne mit der Überprüfung der vorhandenen asynchronen Benchmarks in pyperformance und vergleiche ihr Coroutine-Verhalten mit der hier beschriebenen heterogenen, kontextwechselintensiven Arbeitslast. Definiere einen repräsentativen Benchmark und lege fest, wie er ausgeführt und gemessen werden soll; abgeschlossen ist die Aufgabe, wenn die Arbeitslast zur Suite hinzugefügt wurde und vergleichbare Ergebnisse zur Interpreter-Performance liefert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
context: Recently I set about trying to find a faster Python interpreter for my async app, which has a high rate of context switching, many coroutines, and each coroutine running different code. I found that the app runs 2x slower on PyPy, and 20% faster on Pyston-full. One reason may be that a tracing JIT will naively trace across context switches, such that a given trace will never be repeated, due to arbitrary occurrence and ordering of coroutine resumes.
There really seems to be nothing in the benchmark world that represents this kind of async workload-- which, by the way, I expect to become more popular with time. The current async benchmarks in pyperformance have nothing like this-- the coroutines are trivial and homogenous.
It's concerning that the Pyston full fork is being retired, while PyPy blindly continues as if everything's OK, and faster-python proceeds at a furious pace-- all without evaluating a workload that is significant today, and may become more so in the future.
- Vorherrschende Sprache
- Python
- Sterne
- 1k
- Forks
- 203
- Ø Merge
- 1 Std. 20 Min.
- Gemergte PRs (30 T.)
- 2
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus python/pyperformance
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
python/pyperformance#346 · 3 Kommentare ·
-
python/pyperformance#474 · 4 Reaktionen · 1 zugewiesene Person ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 25/100
python/pyperformance#473 ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
python/pyperformance#464 ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
python/pyperformance#460 · 2 Kommentare · 1 Reaktion ·
Alle Issues in python/pyperformance
Ähnliche Issues
-
essnmx good first issue
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 95/100
-
[Feature] 奇物选择添加优先级 Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
syfoud/Simulated_Scepter#174 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
Giskard-AI/giskard-oss#2840 · 1 Kommentar ·
-
A claim comment carrying the issue number is silently declined while the workflow reports success Offenarea: repo bug perceived difficulty: 2
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
yeti-platform/yeti#1380 ·