代码之家  ›  专栏  ›  技术社区  ›  Harty

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

  •  6
  • Harty  · 技术社区  · 16 年前

    我需要弄清楚运行Linux程序的哪个部分占用了多少(百分比或绝对)内存。我需要创建多个这样的程序的概要文件,这样我就可以在代码中识别出一些更大的内存消耗者,并查看是否可以优化它们以减少使用。 我需要它在MIPS平台上,不幸的是,Valgrind不能在MIPS上工作。

    任何帮助/指点都将不胜感激。

    4 回复  |  直到 11 年前
        1
  •  6
  •   Andreas Brinck    16 年前

    你可以把所有的电话 free malloc 使用您自己的函数,您还可以在其中提供,例如,在哪个文件中以及在哪个行号处完成每个分配。从这些信息可以很容易地看到在哪里使用了什么内存。

        2
  •  8
  •   Laurent Parenteau    11 年前

    除了Valgrind,还有很多其他内存调试器/分析器。以下所有内容似乎都支持MIP(但我没有在该体系结构上尝试过):

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

        3
  •  4
  •   dmeister    16 年前
        4
  •  1
  •   Timo Geusch    16 年前

    内存消耗不应该受到底层处理器体系结构的严重影响,因此您可以在x86 Linux上进行内存分析。是的,绝对的记忆量可能会受到影响,但是当你在寻找相对数而不是绝对数时,这应该是可行的。

    也就是说,如果Linux x86构建不只是重新编译,那么这个解决方案不太可能成为一个选项。