在Windows上按线程测量CPU时间

2 投票
2 回答
1247 浏览
提问于 2025-04-15 23:17

我正在为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操作。

撰写回答