gpt4 book ai didi

linux - Linux中内存泄漏检查工具的问题

转载 作者:太空宇宙 更新时间:2023-11-04 04:39:17 25 4
gpt4 key购买 nike

1) 还有没有内存泄漏工具叫 Boehmgc ?该工具与其他工具相比如何?

2)我用过LeakTracer , mudflapValgrind 。但不幸的是LeakTracer有内存占用的缺点(在启动时池化大量内存然后分配它),那么有什么替代方案呢?

最佳答案

Boehm GC是垃圾收集器,类似于Java中的垃圾收集。您提到的其他工具旨在警告您有关泄漏的信息,以便您可以采取纠正措施。垃圾收集旨在在程序运行时查找并恢复不再使用的分配。示例(来自维基百科页面):

#include <assert.h>
#include <stdio.h>
#include <gc.h>

int main(void)
{
int i;

GC_INIT();
for (i = 0; i < 10000000; ++i)
{
// GC_MALLOC instead of malloc
int **p = GC_MALLOC(sizeof(int *));
int *q = GC_MALLOC_ATOMIC(sizeof(int));

assert(*p == 0);
// GC_REALLOC instead of realloc
*p = GC_REALLOC(q, 2 * sizeof(int));
if (i % 100000 == 0)
printf("Heap size = %zu\n", GC_get_heap_size());
}

// No free()

return 0;
}

就我个人而言,在 C 或 C++ 中使用垃圾回收有些让我感到非常不安。对于 C++,“Smart pointers ”在我看来是在所有权不明确的情况下(尽管您可能想了解为什么在您的设计中不清楚)以及异常安全方面的帮助(例如现在已弃用的 std::auto_ptr 的设计目的)

至于泄漏检测器,您可以添加:

查看您的 Linux 列表。

相关内存检查工具,但不包括泄漏:

关于linux - Linux中内存泄漏检查工具的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7229077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com