在我的应用程序中,我使用线程模块创建了许多线程,我需要尽可能多地获取有关它们的信息。没有任何问题,我可以获取有关运行时间的信息。但是如何获取线程的内存使用情况和 CPU 使用情况(最好是 CPU 时间)等信息。
我找到了 yappi 模块,但它不适合我。
在我的应用程序中,我使用线程模块创建了许多线程,我需要尽可能多地获取有关它们的信息。没有任何问题,我可以获取有关运行时间的信息。但是如何获取线程的内存使用情况和 CPU 使用情况(最好是 CPU 时间)等信息。
我找到了 yappi 模块,但它不适合我。
好吧,我不知道您使用的是哪个操作系统,但我建议您寻找您的操作系统提供的工具或 api 来解决这个问题。
例如,在 Linux 中,每个进程都存在一个目录/proc/[pid]/
,[pid] 是进程 ID。在此目录中,您将找到各种伪文件,其中包含有关该过程的几乎每个方面的信息。您可以像任何其他文件一样在 python 中打开这些文件,因此很容易获得这些信息。对于您的问题,最重要的文件之一是/proc/[pid]/stat
.
还有其他目录/proc/[pid]/task/[tid]
,[tid] 与线程 ID 一致。这些保存每个线程的信息。
所以你在 Linux 中看到你可以通过简单的文件操作来获取你的信息,比如open()
和.read()
. 我怀疑大多数其他操作系统也会以一种或另一种方式提供这些信息。
要了解有关/proc
使用man proc的更多信息。