当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《跟踪每个进程的CPU和内存使用情况》经验,为你挑选了6个好方法。

我怀疑我的一个应用程序占用的CPU周期比我想要的多.问题是 - 它发生在爆发中,只是看着任务管理器并没有帮助我,因为它只显示了即时使用.

有没有办法(在Windows上)跟踪某些进程的CPU和内存使用情况的历史记录.例如,我将开始跟踪"firefox",大约一小时后,将会看到该小时内CPU和内存使用情况的图表.

我正在寻找现成的工具或程序化的方法来实现这一目标.



1> Martin08..:

只需键入perfmonStart > Run,然后按回车.当"性能"窗口打开时,单击+号以向图表添加新计数器.计数器是您的PC工作方式的不同方面,并按相似性分组为称为"性能对象"的组.

对于您的问题,您可以选择"处理","内存"和"处理器"性能对象.然后,您可以实时查看这些计数器

您还可以指定实用程序以保存性能数据以供日后检查.为此,请在左侧面板中选择"性能日志和警报".(它位于系统监视器控制台下,它为我们提供了上述计数器.如果不存在,请单击"文件">"添加/删除管理单元",单击添加,然后在列表中选择"性能日志和警报" ".)从"性能日志和警报"中,在"计数器日志"下创建一个新的监视配置.然后,您可以添加计数器,指定采样率,日志格式(二进制或纯文本)和日志位置.


自从你写这篇文章以来,MS显然已经将UI改为PerformanceMonitor.知道如何在Windows 2008 R2中执行此操作吗?
右键单击"数据收集器集" - >"用户定义".选择New-> Data Collector Set.为其命名并选择手动创建.点击下一步.选择性能计数器.点击下一步.添加性能计数器并输入采样间隔.然后在"数据收集器集"下右键单击您的设置,然后单击"开始".一段时间后,右键单击您的设置,然后单击"停止".然后,您可以在Reports-> User Defined-> Your set下找到该报告.右键单击图形,然后选择"另存数据".
@MartinBrown - 发现[this](http://community.spiceworks.com/topic/221403-how-to-get-history-report-of-the-cpu-memory-usage-on-windows-2008-r2- 64位).这很棒.
谁知道如何在vista上保存日志的第二部分?在任何地方似乎都没有"性能日志和警报"

2> Niall..:

Process Explorer可以显示进程占用的总CPU时间,以及每个进程的历史记录图.


因此,您将如何使用它来查找一个进程,该进程在短时间内突然开始使用更多的内存或处理器电源。您能详细说明一下吗?

3> CppNoob..:

使用perfmon.exe,我尝试使用"处理"计数器下的"专用字节"计数器来跟踪内存使用情况,它运行良好.



4> 小智..:

也许你可以用它.它应该适合您,并将报告指定进程的处理器时间.

@echo off
: Rich Kreider 
: 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 

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.



5> Ady Romantik..:

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

性能对象:进程检查"从列表中选择实例"并选择firefox.



6> 小智..:

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

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


技术上,perfmon是底层Windows性能计数器API的接口,它早于WMI多年.WMI还在其名称空间中公开性能计数器API.
推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有