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


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

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


8707
2018-02-24 21:52


起源



答案:


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


7
2018-02-24 22:02



用于测量东西的绝对金币。它甚至会显示一个定时图表! - ffledgling


答案:


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


7
2018-02-24 22:02



用于测量东西的绝对金币。它甚至会显示一个定时图表! - ffledgling


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


9
2017-12-02 14:47