如何从外部判断一个进程有多少python线程?

2024-10-04 11:25:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个大型python程序,它有一个性能问题。这一问题的原因尚未查明

csysdig称,这个应用程序经常有32个线程在运行

编写应用程序的CPython不擅长CPU绑定的线程。所以我想知道性能问题是否是因为Python线程被用于CPU受限的东西

我的问题是,在CysDIGET或SysDigy或类似的工具(或代码检测)中,有没有区别Python线程和来自C/C++扩展模块的线程?p>

我在google上搜索过,但没有找到任何东西——只有关于如何使用线程的教程

我还搜索了Python代码中的字符串“thread”,只找到了一些似乎不能解决问题的实例

我使用以下方法识别在CPython应用程序中运行的线程:

csysdig -p"procname:%proc.name threadcount:%proc.nthreads" proc.name contains python

所以我知道它有很多线程在运行

我想知道有多少线程是CPython线程,多少是来自C/C++扩展模块,而不需要学习整个大的代码库。

如果我需要在Python应用程序中添加一些代码来查找这些信息,那很好


Tags: 模块工具代码name程序应用程序原因proc