繁体   English   中英

确定进程的最大内存使用量

[英]Determining maximum memory use of a process

我想运行一个命令,当它完成时,要记录结果进程的最大内存使用情况。 例如,我想要类似于Linux上的“ time”命令,其中“ time foo”将运行“ foo”,并且当“ foo”退出时,将打印出“ foo”花费的CPU时间。

对于我目前的应用程序,我需要它在Windows上运行,但是如果您知道仅Linux的程序,请告诉我。 (至少这会很有趣,但它也可能带给我寻找等效Windows的线索。)

我创建了一个cmd exe文件来分析长时间运行的程序的内存使用情况。 看到这里: MemoryUsageMonitor

我不知道执行此操作的程序,但是有API。

如果使用的是.NET,请使用Process.TotalProcessorTime属性。

如果您使用的是本机代码,请使用GetProcessTimes()函数。

如果您拥有Vista,则可以(也许也可以是7)。 转到开始->控制面板->系统和维护->管理工具-> 可靠性和性能监视器 ->性能监视器->创建新手表(绿色+符号)->流程->工作集-> [在下面选择一个流程],然后按确定。 您可以登录,等等。

截图: http//www.freeimagehosting.net/image.php?912df44d75.jpg

我创建了一个简单的Windows程序timemem.exe,其行为与Linux / Mac OS X上的/ usr / bin / time相似,并且将显示类似的统计信息,例如经过时间,用户和内核CPU时间以及最大工作集大小在另一个Win32进程使用的内存中。 看到:

http://homepage.mac.com/jafingerhut/files/code/code.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM