在Windows上测量每个线程的CPU时间

我正在为Windows开发一个长期运行的multithreadingPython应用程序,我希望进程知道每个线程所占用的CPU时间。 我可以用os.times()获取整个进程的总体时间,但是我需要知道每个线程的时间。

我知道有一些外部工具,比如Sysinternals Process Explorer,但是我的程序本身需要这些信息。 如果我在Linux上,我会查看/proc文件系统, 如下所述 。 如果我正在编写C代码,我将使用GetThreadTimes调用, 如下所述 。

那么我怎样才能在使用Python的Windows上完成这项工作呢?

win32process.GetThreadTimes

你希望Python for Windows Extensions能够做出多毛的东西。

或者你可以简单地使用yappi。 ( https://code.google.com/p/yappi/ )如果选择CPU时钟类型进行性能分析,它将透明地使用GetThreadTimes()。

另请参阅此处的示例: https : //code.google.com/p/yappi/wiki/YThreadStats_v082