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

时间:2010-01-17 23:29:25

标签: windows process memory-management

我想运行一个命令,当它完成时,会记录生成的进程的最大内存使用量。例如,我想要类似于Linux上的'time'命令,其中'time foo'将运行'foo',当'foo'退出时,将打印出'foo'所花费的CPU时间量。

对于我目前的应用程序,我需要在Windows上运行,但如果你知道一个只有Linux的程序,请告诉我。 (至少它很有趣,但它也可能让我找到一个等效的Windows。)

4 个答案:

答案 0 :(得分:1)

我不知道有这样做的程序,但有API。

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

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

答案 1 :(得分:1)

你可以,如果你有Vista(也许7也不确定)。去开始 - >控制面板 - >系统和维护 - >管理工具 - > 可靠性和性能监视器 - >性能监视器 - >创建新手表(绿色+符号) - >过程 - >工作集 - > [选择下面的流程]并按确定。你可以记录这个等等。

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

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