我有一个以两种不同模式运行的程序.我想比较两种模式的运行时和内存要求.使用时可以轻松确定运行时间time
.实际上,在这种情况下,它非常简单,因为程序会在测试结束时报告CPU时间和挂钟时间.但是,确定内存使用情况要困难一些.
如何在整个生命周期内获取进程内存使用情况的详细信息?我想知道最大使用量和平均值.事实上,理想情况下,我想在运行的整个生命周期中使用一些内存使用情况.
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
.
Valgrind的massif工具可以为您提供一段时间内存使用情况的图表.见http://valgrind.org/docs/manual/ms-manual.html