Open
Description
The current Profiling panel can't support async applications (#1875). However, the yappi project does https://github.com/sumerc/yappi
It's been around for >5 years, it's the default profiler for PyCharm and it supports multi-threaded applications.
We could make this an optional dependency of the toolbar and could try to automatically utilize it if we're in async context. I haven't thought it entirely through, but I wanted to highlight there are async profiling options available to us. And since profiling is disabled by default, I'd be okay with adding an optional dependency to support it.
Activity
salty-ivy commentedon Nov 12, 2024
Since DebugToolbar currently use
pstats
to represent process profiling data, there’s a compatibility concern. Yappi doesn’t supportpstats
and instead uses its own format,ystats
(reference: Yappi implementation).tim-schilling commentedon Nov 24, 2024
@salty-ivy sorry for the late response. There are two options here:
Switching to Yappi may be easier. However, 2 may create some portability in the future if another person would like to create a third-party panel that uses a different profiling library.
What are your thoughts?