API for outputting different formats from CPython sampling profiler
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 77.2k
- Fork
- 35.9k
- Metriche di merge delle PR
- Metriche PR in attesa
Descrizione
Feature or enhancement
Proposal:
CPython 3.15 has statistical sampling profiler which currently only supports outputting
- pstats https://docs.python.org/3.15/library/profile.html#pstats.Stats
- collapsed format for flamegraphs https://github.com/python/cpython/blob/8d5c3341c538cd1a4192ca8a1536b2eed4b98c69/Lib/profiling/sampling/stack_collector.py#L24
Since it's still an early stage for the sampling profiler, I thought it would be nice to initiate discussion around how to support multiple different formats from the profiler.
- pprof
- OTel
are the formats that could potentially be added, but supporting those from CPython would introduce dependencies that might complicate building/testing and distributing CPython.
I'd like to suggest that CPython has an interface to support 3rd party collectors. What do you think?
Has this already been discussed elsewhere?
I have already discussed this feature proposal on Discourse
Links to previous discussion of this feature:
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia leggendo Lib/profiling/sampling/stack_collector.py e la gestione esistente di pstats e collapsed-format a cui si fa riferimento nell’issue. Esamina la discussione collegata su Discourse prima di proporre un’interfaccia per collector di terze parti; per considerare il lavoro completato servirebbero un’API concordata, limiti definiti per i formati supportati e un piano per i vincoli di build, test e distribuzione di CPython.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- performance
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 25/100