【问题标题】:How can I determine max memory usage of a process in Linux?如何确定 Linux 中进程的最大内存使用量?
【发布时间】:2009-02-24 21:52:51
【问题描述】:

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

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

【问题讨论】:

    标签: linux memory-management


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 测量东西的绝对黄金。它甚至会显示一个定时图表!
      猜你喜欢
      • 1970-01-01
      • 2018-02-23
      • 2011-06-06
      • 2011-09-17
      • 2016-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      相关资源
      最近更新 更多