0

我有一个用 C 编写的应用程序,它使用zmalloc(从 Redis 借来的)内存包装器来跟踪我的程序动态分配的总内存。我还在 Linux 上使用 Valgrind 来查找内存泄漏和无效的内存访问。

问题是当我使用 Valgrind 时会显示完全不同的内存使用报告zmalloctop这让我觉得 Valgrind 本身消耗了太多的内存。

如何测量 Valgrind 的内存使用情况?

4

1 回答 1

0

valgrind 工具(例如 memcheck 或 helgrind)使用大量内存来跟踪程序的各个方面。因此,top 显示的内存比程序自己分配的内存多很多是正常的。

如果你想了解 valgrind 使用的内存,你可以这样做:

valgrind --stats=yes ...

以下几行

------ Valgrind 的内存使用统计如下 ------

将提供有关 valgrind 内存使用情况的一些信息。

用于valgrind --profile-heap=yes ...详细了解内存使用情况。

请注意,如果您不使用标准 malloc 库,则可能需要使用选项 --soname-synonyms=... 才能使 memcheck 或 helgrind 等工具正常工作。到

于 2016-02-14T21:30:55.790 回答