跟踪每个进程的CPU和内存使用情况

我怀疑我的一个应用程序吃了比我想要的更多的CPU周期。 问题是 – 它发生在爆发中,只是看着任务pipe理器不能帮助我,因为它只显示即时使用。

有没有一种方法(在Windows上)跟踪某些进程的CPU和内存使用情况的历史logging。 例如,我将开始跟踪“firefox”,一个小时左右后,会看到一个CPU和内存使用情况的图表。

我正在寻找一个现成的工具或编程方式来实现这一目标。

只需在“ Start > Runinputperfmon ,然后按Enter键。 当“性能”窗口打开时,单击+符号将新的计数器添加到graphics中。 这些计数器是您电脑工作方式的不同方面,并按照“性能对象”的相似性分组。

对于你的问题,你可以select“进程”,“内存”和“处理器”性能对象。 然后您可以实时看到这些计数器

您也可以指定该实用程序以便稍后保存性能数据以供您检查。 为此,请在左侧面板中select“性能日志和警报”。 (在系统监视器控制台中提供了上面提到的计数器,如果不存在,点击“文件”>“添加/删除pipe理单元”,单击添加,然后select列表中的“性能日志和警报” “。)从”性能日志和警报“中,在”计数器日志“下创build新的监视configuration,然后添加计数器,指定采样率,日志格式(二进制或纯文本)和日志位置。

Process Explorer可以显示进程占用的CPU总时间,以及每个进程的历史logging图表。

使用perfmon.exe,我曾尝试使用“过程”计数器下的“专用字节”计数器来跟踪内存使用情况,它工作得很好。

我同意,perfmon.exe允许您添加计数器(右键单击右侧面板)任何您想要监视的进程。

性能对象:进程检查“从列表中select实例”并selectfirefox。

也许你可以使用这个。 它应该为你工作,并将报告指定进程的处理器时间。

 @echo off : Rich Kreider <rjk@techish.net> : report processor time for given process until process exits (could be expanded to use a PID to be more : precise) : Depends: typeperf : Usage: foo.cmd <processname> set process=%~1 echo Press CTRL-C To Stop... :begin for /f "tokens=2 delims=," %%c in ('typeperf "\Process(%process%)\%% Processor Time" -si 1 -sc 1 ^| find /V "\\"') do ( if %%~c==-1 ( goto :end ) else ( echo %%~c%% goto begin ) ) :end echo Process seems to have terminated. 

WMI是Windows Management Instrumentation,它是内置于所有最新版本的Windows中的。 它允许您以编程方式跟踪诸如CPU使用率,磁盘I / O和内存使用情况。

Perfmon.exe是该界面的GUI前端,可以监视进程,将信息写入日志,并允许您在事后分析日志。 这不是世界上最优雅的scheme,但它确实完成了工作。

Perfmon.exe被内置到窗口中。

Process Lasso的devise更多用于stream程自动化和优先级优化,而不是graphics。 也就是说,它提供了每个进程的CPU利用率历史logging(在图中用白线表示),但是它不提供每个进程的内存利用率历史logging。

免责声明:我是Process Lasso的作者,但实际上并没有在这里赞同 – 因为有更好的解决scheme(perfmon是最好的)。

有史以来最好的事情是Windows Vista +资源和性能监视器。 它可以跟踪进程在一段时间内CPU,内存,networking和磁盘访问的使用情况。 这是一个很好的整体系统信息工具,应该早就build立起来了。 除非我错了,否则它可以跟踪每个进程的CPU和内存使用情况(列出的其他内容)。

嗯,我看到Process Explorer可以做到这一点,虽然它的graphics不太方便。 仍在寻找替代/更好的方法来做到这一点。

你可能想看看Process Lasso 。

虽然我还没有尝试过, ProcDump似乎是一个更好的解决scheme。

网站描述:

ProcDump是一个命令行实用程序,其主要目的是监视CPU峰值的应用程序,并在pipe理员或开发人员可以使用的尖峰期间生成崩溃转储,以确定峰值的原因。 ProcDump还包括挂起的窗口监视(使用与Windows和任务pipe理器使用的窗口挂起相同的定义),未处理的exception监视,并可以根据系统性能计数器的值生成转储。 它也可以作为一个通用的进程转储工具,可以embedded到其他脚本中。