我需要找出我正在运行的Linux程序中,哪一部分占用了多少内存(可以是百分比或绝对值)。我需要创建多个这样的程序的概要文件,以便我可以识别代码中占用内存更多的一些较大的消费者,并查看是否可以优化它们以使用更少的内存。我需要在MIPS平台上实现,不幸的是,Valgrind在MIPS上无法工作。
任何帮助/指针将不胜感激。
任何帮助/指针将不胜感激。
free
和malloc
的调用,在其中提供每个分配所在的文件和行号等信息。有了这些信息,很容易看出哪些内存被使用在哪里。malloc
调用中添加额外的参数,这种方法行不通,对吧?(我是一个完全的Linux新手) - Andreas Brinckmalloc
,那么您将如何知道哪个代码正在分配什么内存?在我的C++代码中,我将__FILE__和__LINE__传递给new
以实现此目的。 - Andreas Brinck__FILE__
和__LINE__
。 - Andreas Brinck内存消耗不应受到底层处理器架构的影响,因此您可能可以在 x86 Linux 上进行内存分析。是的,绝对内存量可能会受到影响,但由于您更多地关注相对而非绝对数字,这应该可行。
话虽如此,如果 Linux x86 构建需要重新编译,那么这个解决方案很可能不是一个选项。