随时间推移按进程记录%CPU


39

Windows上是否有任何简便的方法可以将每个进程的%CPU时间记录到文件中以供以后分析?

据我所知...

  1. 任务管理器向我显示了每个进程的%CPU,但只能直观地看到-无法保存到文件。
  2. Perfmon将让我保存到文件,并另外创建一个基于时间的文件(以指定的时间间隔拍摄快照)-这几乎是我想要的,但据我所知它无法分解% CPU按进程。
  3. Process Explorer将让我按流程细分,但只会将文件另存为单个时间点的快照

因此,这些都不是我所需要的:我需要获取一个文件,其中包含“每15秒CPU排名前10的进程,直到停止监视”之类的原因,因为我有一台机器某些进程每天偶尔会引起CPU使用率的短暂峰值,我需要找出是哪个进程的罪魁祸首。

有什么可以做的,还是我错过了perfmon或Process Explorer的某些功能?

Answers:


37

Process Monitor可以为您做到这一点。

您可能首先要启用分析事件的收集:

在此处输入图片说明在此处输入图片说明

然后,只要收集您想要的时间就可以了(如果您打算长时间收集数据,则可能要设置过滤器并启用“ 丢弃过滤”事件)。然后转到工具->流程活动摘要:

在此处输入图片说明

现在,您将获得记录的所有活动进程的列表,以及它们随时间的活动。 在此处输入图片说明

然后,您可以打开单个进程的详细信息(通过双击它),并检查图中某些事件的时间戳:

在此处输入图片说明


1
谢谢。这在视觉上是非常令人印象深刻的(如果您长时间运行它,我不敢想像它会使用多少内存)。对于能够在屏幕上看到正在执行的过程无疑很有用。但是,如果我从流程活动摘要屏幕中单击“保存”,则保存的仍然是单时间点快照,没有时间相关数据。
PhantomDrummer 2012年

@PhantomDrummer:保存和加载PML文件对我来说非常有效。加载PML之后,所有以前记录的事件都将还原并可供分析。保存文件时,请确保选择所有事件。万一它不想工作,请告诉我,我将在答案中包含更多详细信息。祝您好运:)
Der Hochstapler 2012年

1
@PhantomDrummer:转到选项->分析事件。您可以在此处将间隔设置为1s或100ms。就目前而言。如果文件仍然太大,则必须设置更严格的过滤器并启用“丢弃过滤的事件”。
Der Hochstapler,2012年

1
@Pacerier一个是任务管理器,另一个记录任务执行的操作。
Der Hochstapler,2015年

6
阿伦特还有更简单的东西吗?看来您需要学习如何使用它。稍微检查一下,我只想知道cpu使用率高于X%时进程的cpu使用时间
Darius.V 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.