如何确定Linux中进程的最大内存使用量?

时间:2009-02-24 21:52:52

标签: linux memory-management

我有一个以两种不同模式运行的程序。我想比较两种模式的运行时和内存要求。使用time可以轻松确定运行时间。事实上,在这种情况下,真的很容易,因为程序会在测试结束时报告CPU时间和挂钟时间。但是,确定内存使用情况要困难一些。

如何在整个生命周期内获取进程内存使用情况的详细信息?我想知道最大使用量和平均值。事实上,理想情况下,我想在运行的整个生命周期中使用一些内存使用情况。

2 个答案:

答案 0 :(得分:9)

Valgrind的massif工具可以为您提供一段时间内存使用情况。见http://valgrind.org/docs/manual/ms-manual.html

答案 1 :(得分:9)

time有一个详细模式,可以为您提供最大和平均驻留集大小。

(驻留集大小是RAM中保存的进程内存部分)。

$ /usr/bin/time -v command_that_needs_to_measured |& grep resident
    Maximum resident set size (kbytes): 6596
    Average resident set size (kbytes): 0

请记住使用具有/usr/bin/time选项的二进制文件-v。您可以通过运行man time来查看其文档。如果您未指定其路径,则会运行bash的内置time具有-v选项。您可以在bash手册页中查看其文档,也可以运行help time