在Windows上按线程测量CPU时间
我正在为Windows开发一个长时间运行的多线程Python应用程序,我想知道每个线程消耗了多少CPU时间。我可以通过os.times()获取整个进程的总时间,但我需要知道每个线程的时间。
我知道有一些外部工具,比如Sysinternals的Process Explorer,但我的程序本身需要这些信息。如果我在Linux上,我会查看/proc
文件系统,就像这里描述的那样。如果我在写C代码,我会使用GetThreadTimes
这个调用,就像这里描述的那样。
那么,我该如何在Windows上使用Python来实现这个功能呢?
2 个回答
1
或者你可以简单地使用yappi。(https://code.google.com/p/yappi/) 如果选择了CPU时钟类型进行性能分析,它会自动使用GetThreadTimes()。
这里还有一个例子可以参考:https://code.google.com/p/yappi/wiki/YThreadStats_v082
1
win32process.GetThreadTimes
你需要使用Python for Windows Extensions来处理一些复杂的Windows操作。