使用 vmprof 分析 Python 应用程序的后台线程

Profiling background threads of a Python app using vmprof

我正在尝试使用 vmprof 配置 Python 应用程序(运行 在 pypy2.7 v7.1.1 下)的分析。

如果应用程序是 运行 通过 pypy -m vmprof ...,生成的配置文件包含来自所有线程(主线程和后台线程)的样本。但是,我需要在 运行 进程中启用和禁用探查器,因此我在信号处理程序中使用 vmprof.enable()/vmprof.disable() 函数来执行此操作。问题是生成的文件只包含来自主线程的样本。

有没有办法使用 vmprof 分析 运行 应用程序的所有线程?

我最终在探查器启动时重新创建了后台线程。

当探查器为 运行 时,从主线程生成新线程很重要。如果新的后台线程是从旧的后台线程产生的,新线程仍然不会被分析。