如何分析C程序的内存使用情况

Har*_*rty 6 c memory-management

我需要弄清楚我正在运行的linux程序的哪个部分,占用了多少(百分比或绝对值)内存.我需要创建一个包含多个此类程序的配置文件,以便我可以在代码中识别出一些较大的内存使用者,并查看是否可以优化它们以减少使用.我需要它在MIPS平台上,不幸的是,Valgrind不适用于MIPS.

任何帮助/指针将不胜感激.

Lau*_*eau 8

除了Valgrind之外,还有很多其他的内存调试器/分析器.以下所有内容似乎都支持MIPS(但我没有在该架构上尝试过它们):

jemalloc,CCMALLOC,mpatrol,NJAMD,Dmalloc,甚至谷歌自己的google-perftools.


And*_*nck 6

你可以换到您的来电free,并malloc用自己的功能,其中还提供例如在哪个文件以及在什么行号每个分配完成.从这些信息中可以很容易地看出在哪里使用了什么内存.

  • 它应该工作.请点击这里:http://www-2.cs.cmu.edu/afs/cs.cmu.edu/academic/class/15213-s03/src/interposition/mymalloc.c (2认同)