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