如何在 OSX 中获得程序的最大内存使用量
Posted
技术标签:
【中文标题】如何在 OSX 中获得程序的最大内存使用量【英文标题】:How do I get the max memory usage of my program in OSX 【发布时间】:2012-03-13 08:48:33 【问题描述】:我用 c++ 编写了一个程序,用 Intels C++ 编译器编译它,并在 Mac OSX 下运行它。
我想分析程序的最大内存使用情况,我会使用什么工具?
我更喜欢命令行工具,用于编写脚本。
【问题讨论】:
【参考方案1】:虽然我没有尝试过,但Valgrind Massif profiling tool 应该可以帮助做到这一点。从 Massif manual:
默认情况下,Massif 仅测量堆内存,即分配的内存 使用 malloc、calloc、realloc、memalign、new、new[] 和 其他几个。因此,Massif 报告的数字可能是 比 top 等工具报告的要小得多 测量程序在内存中的总大小。但是,如果您希望 测量程序使用的所有内存,您可以使用 --pages-as-heap=yes.
【讨论】:
是的。将valgrind doc link 添加到您的答案中。 有没有办法让 massif 工具返回执行的最大组合分配大小?在单独的文件中获取大量堆栈跟踪和示例数据似乎有点过头了。 不,看来您无论如何都必须收集分析数据,然后通过ms_print
对其进行解析以获得最大分配大小。以上是关于如何在 OSX 中获得程序的最大内存使用量的主要内容,如果未能解决你的问题,请参考以下文章