如何测量 Valgrind 的内存使用情况?
How to measure Valgrind's memory usage?
我有一个用 C 编写的应用程序,它使用 zmalloc
(从 Redis 借用)内存包装器来跟踪我的程序动态分配的内存总量。我还在 Linux 上使用 Valgrind 来查找内存泄漏和无效内存访问。
问题是当我使用 Valgrind 时,zmalloc
和 top
显示完全不同的内存使用报告。这让我觉得 Valgrind 本身消耗了太多内存。
如何测量 Valgrind 的内存使用情况?
memcheck 或 helgrind 等 valgrind 工具使用大量内存
跟踪程序的各个方面。
所以,top 显示的内存比你的程序多很多是正常的
自己分配。
如果你想了解valgrind使用的内存,你可以这样做:
valgrind --stats=yes ...
以下几行
------ Valgrind 的内存使用统计如下 ------
将提供一些有关 valgrind 内存使用情况的信息。
使用valgrind --profile-heap=yes ...
详细的内存使用。
请注意,如果您不使用标准 malloc 库,则可能需要使用选项 --soname-synonyms=... 才能使 memcheck 或 helgrind 等工具正常工作。
至
我有一个用 C 编写的应用程序,它使用 zmalloc
(从 Redis 借用)内存包装器来跟踪我的程序动态分配的内存总量。我还在 Linux 上使用 Valgrind 来查找内存泄漏和无效内存访问。
问题是当我使用 Valgrind 时,zmalloc
和 top
显示完全不同的内存使用报告。这让我觉得 Valgrind 本身消耗了太多内存。
如何测量 Valgrind 的内存使用情况?
memcheck 或 helgrind 等 valgrind 工具使用大量内存 跟踪程序的各个方面。 所以,top 显示的内存比你的程序多很多是正常的 自己分配。
如果你想了解valgrind使用的内存,你可以这样做:
valgrind --stats=yes ...
以下几行
------ Valgrind 的内存使用统计如下 ------
将提供一些有关 valgrind 内存使用情况的信息。
使用valgrind --profile-heap=yes ...
详细的内存使用。
请注意,如果您不使用标准 malloc 库,则可能需要使用选项 --soname-synonyms=... 才能使 memcheck 或 helgrind 等工具正常工作。 至