我需要弄清楚我正在运行的linux程序的哪一部分占用了多少(百分比或绝对)内存。我需要创建一个多个这样的程序的配置文件,这样我就可以在我的代码中识别一些更大的内存消耗者,并看看是否可以优化它们以使用更少的内存。我需要它在MIPS平台上,不幸的是,Valgrind不能在MIPS上工作。
任何帮助/指示都将不胜感激。
发布于 2009-12-15 17:45:09
您可以将对free和malloc的所有调用包装在您自己的函数中,您还可以在其中提供,例如,在哪个文件中以及在哪个行号完成每个分配。从这些信息中,很容易看出在哪里使用了哪些内存。
发布于 2009-12-15 21:03:09
除了Valgrind之外,还有很多其他的内存调试器/分析器。以下所有似乎都支持MIPS (但我还没有在该架构上尝试过它们):
jemalloc,CCMALLOC,mpatrol,NJAMD,Dmalloc,甚至谷歌自己的google-perftools。
发布于 2009-12-17 21:35:34
您可以使用Google's perftools进行内存分析。该项目提供了very fast, multi-threaded malloc implementation、Heap profiler、Heap checker和a CPU profiler.
https://stackoverflow.com/questions/1906228
复制相似问题