【发布时间】:2012-07-23 19:23:11
【问题描述】:
我有一个在Solaris 中连续运行的进程。
进程的堆内存使用量随着时间的推移不断增加,当超过 4Gb 时,进程核心转储。
我尝试使用Purify 运行该进程,但找不到任何真正泄漏内存的代码。
有没有什么方法可以分析导致堆内存使用量增加的代码? 进程的堆内存使用量每 15 分钟增加 4Mb 或 8Mb,并且从未减少。
我已经使用pmap命令检查进程堆内存使用情况。
【问题讨论】:
-
这可能是您在技术上没有泄漏内存,但实际上在某处保留了一些指向它的指针。 Purify 会认为没问题。
-
@BoPersson 你是说悬空指针吗?
-
不,如果您忘记删除其中一些,它们就不会悬空。就像建立一个长长的列表,添加一些东西,但有些东西永远不会被删除。
标签: c++ memory heap-memory