我有一个在Windows上运行的Python应用程序,它有点CPU密集型,我正在试图弄清楚我的一些设计选择的影响。
有没有办法在指定的时间段内测量特定进程的CPU利用率,包括总CPU和每个核心?(每个核心很重要,因为Python的GIL可以防止这个程序从使用多个核心到任何主要程度,因此对于我的8核PC,“仅”12%的CPU负载几乎最大化一个核心)
我有Sysinternals Process Explorer,它以1秒为间隔显示总CPU使用率:
但CPU使用率上下跳动,所以我想使用更长的测量间隔,基本上遵循这个过程:
答案 0 :(得分:2)
看看psutil libary for python?
您可以使用此功能
psutil.pids()
获取进程ID列表,然后以这种方式选择特定进程(101是任意的):
your_process = psutil.Process(101)
您还可以获得此过程的CPU使用率:
your_process.cpu_percent(interval=1.0)
您可以将这些内容添加到脚本中以满足您的需求。我希望这有帮助,祝你好运!