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

26

我有一个程序在两种不同的模式下运行。我想比较这两种模式在运行时和内存需求方面的差异。使用time可以轻松确定运行时间。实际上,在这种情况下,这非常容易,因为程序在测试结束时会报告CPU时间和墙钟时间。然而,确定内存使用量要困难一些。

如何获得进程在其生命周期中的内存使用情况的详细信息?我想知道最大使用率和平均使用率。实际上,理想情况下,我想要一些图表显示运行期间内存使用情况的变化。

2个回答

34

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来查看其文档。


15

绝对是测量东西的黄金工具。它甚至可以显示出一个定时的图表! - ffledgling

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接