Eli*_*sky 154 windows sysadmin process-management
我怀疑我的一个应用程序占用的CPU周期比我想要的多.问题是 - 它发生在爆发中,只是看着任务管理器并没有帮助我,因为它只显示了即时使用.
有没有办法(在Windows上)跟踪某些进程的CPU和内存使用情况的历史记录.例如,我将开始跟踪"firefox",大约一小时后,将会看到该小时内CPU和内存使用情况的图表.
我正在寻找现成的工具或程序化的方法来实现这一目标.
Mar*_*n08 162
只需键入perfmon到Start > Run,然后按回车.当"性能"窗口打开时,单击+号以向图表添加新计数器.计数器是您的PC工作方式的不同方面,并按相似性分组为称为"性能对象"的组.
对于您的问题,您可以选择"处理","内存"和"处理器"性能对象.然后,您可以实时查看这些计数器
您还可以指定实用程序以保存性能数据以供日后检查.为此,请在左侧面板中选择"性能日志和警报".(它位于系统监视器控制台下,它为我们提供了上述计数器.如果不存在,请单击"文件">"添加/删除管理单元",单击添加,然后在列表中选择"性能日志和警报" ".)从"性能日志和警报"中,在"计数器日志"下创建一个新的监视配置.然后,您可以添加计数器,指定采样率,日志格式(二进制或纯文本)和日志位置.
Nia*_*all 40
Process Explorer可以显示进程占用的总CPU时间,以及每个进程的历史记录图.
Cpp*_*oob 18
使用perfmon.exe,我尝试使用"处理"计数器下的"专用字节"计数器来跟踪内存使用情况,它运行良好.
小智 10
也许你可以用它.它应该适合您,并将报告指定进程的处理器时间.
@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.
Run Code Online (Sandbox Code Playgroud)
小智 6
WMI是Windows Management Instrumentation,它内置于所有最新版本的Windows中.它允许您以编程方式跟踪CPU使用率,磁盘I/O和内存使用情况.
Perfmon.exe是此接口的GUI前端,可以监视进程,将信息写入日志,并允许您在事后分析日志.这不是世界上最优雅的计划,但它确实完成了工作.
| 归档时间: |
|
| 查看次数: |
363816 次 |
| 最近记录: |