我有一个以两种不同模式运行的程序。我想比较两种模式的运行时和内存要求。使用time
可以轻松确定运行时间。事实上,在这种情况下,真的很容易,因为程序会在测试结束时报告CPU时间和挂钟时间。但是,确定内存使用情况要困难一些。
如何在整个生命周期内获取进程内存使用情况的详细信息?我想知道最大使用量和平均值。事实上,理想情况下,我想在运行的整个生命周期中使用一些内存使用情况。
答案 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
。