Windows上程序的CPU使用率测量

时间:2015-01-13 23:04:53

标签: python windows performance

我有一个在Windows上运行的Python应用程序,它有点CPU密集型,我正在试图弄清楚我的一些设计选择的影响。

有没有办法在指定的时间段内测量特定进程的CPU利用率,包括总CPU和每个核心?(每个核心很重要,因为Python的GIL可以防止这个程序从使用多个核心到任何主要程度,因此对于我的8核PC,“仅”12%的CPU负载几乎最大化一个核心)

我有Sysinternals Process Explorer,它以1秒为间隔显示总CPU使用率:

enter image description here

但CPU使用率上下跳动,所以我想使用更长的测量间隔,基本上遵循这个过程:

  • 启动我的Python应用程序
  • 配置我的应用程序(它有一个UI)以某种方式运行
  • 在适度长的间隔(10-60秒)内测量CPU使用率
  • 以不同的方式配置我的应用程序
  • 在适度长的间隔(10-60秒)内测量CPU使用率
  • 根据需要重复其他配置

1 个答案:

答案 0 :(得分:2)

看看psutil libary for python?

您可以使用此功能

psutil.pids()

获取进程ID列表,然后以这种方式选择特定进程(101是任意的):

your_process = psutil.Process(101) 

您还可以获得此过程的CPU使用率:

your_process.cpu_percent(interval=1.0) 

您可以将这些内容添加到脚本中以满足您的需求。我希望这有帮助,祝你好运!