是否有任何工具可以记录Windows中每个内存分配的调用树



版本迭代后,我的项目的内存使用量增加了(这是一个多线程项目(。我想知道代码中的哪一部分导致了增长。

我认为,如果我可以记录每个内存分配的调用树,那么我就可以根据堆栈进行集群,并进一步识别导致内存增加的代码。

这些工具应该识别调用方的dll或lib,并记录在项目的整个运行过程中分配了多少内存。

我一直在使用Tracy探查器来跟踪分配。不过,它要求您重载operator newoperator delete。它还有一个很好的视觉界面。

来自tracy文档:

void* operator new(std :: size_t count)
{
auto ptr = malloc(count);
TracyAlloc (ptr , count);
return ptr;
}
void operator delete(void* ptr) noexcept
{
TracyFree (ptr);
free(ptr);
}

对于Windows上C/C++代码中的内存泄漏检测,请查看UMDH工具,它是";用于Windows的调试工具";。你会发现很多关于如何使用它的博客文章。

最新更新