C++ 堆内存分析

C++ 堆内存分析,c++,memory,heap,C++,Memory,Heap,我有一个进程在Solaris中连续运行。 随着时间的推移,进程的堆内存使用量不断增加,当超过4Gb时,进程核心将转储 我尝试使用Purify运行该进程,但找不到任何真正泄漏内存的代码 有没有办法分析哪些代码导致堆内存使用率增加? 进程的堆内存使用率每15分钟增加4Mb或8Mb,而且从未减少 我已经使用了pmap命令来检查进程堆内存使用情况。我会将对new和delete的所有调用记录到一个文件中,其中包含调用它们的位置,以确定是否调用了new函数,而没有调用相应的delete。可能堆中有循环。可能

我有一个进程在Solaris中连续运行。 随着时间的推移,进程的堆内存使用量不断增加,当超过4Gb时,进程核心将转储

我尝试使用
Purify
运行该进程,但找不到任何真正泄漏内存的代码

有没有办法分析哪些代码导致堆内存使用率增加? 进程的堆内存使用率每15分钟增加4Mb或8Mb,而且从未减少


我已经使用了
pmap
命令来检查进程堆内存使用情况。

我会将对
new
delete
的所有调用记录到一个文件中,其中包含调用它们的位置,以确定是否调用了
new
函数,而没有调用相应的
delete
。可能堆中有循环。

可能是技术上没有泄漏内存,但实际上在某个地方保留了指向它的指针。Purify会认为它是可以的。@BoPersson你是说悬空指针吗?不,如果你忘记删除一些指针,它们就不会悬空。就像建立一个长长的列表,添加一些东西,但有些永远不会被删除。@cppcoder-当一个对象指向另一个对象,而该对象直接或间接指向第一个对象时。