我的应用程序不断消耗越来越多的内存,如Windows任务管理器中所示,并最终因OutOfMemory而崩溃。但是,当我使用MemoryValidator(来自www.softwareverify.com)检查泄漏时,没有检测到泄漏。为什么会这样?
答案 0 :(得分:1)
仅仅因为内存使用量不断增加并不意味着它必然会“泄漏”。你可以简单地积累大量的活动对象和/或非常大的活动对象(包含大量的数据)。
如果您可以提供有关您正在使用的语言以及应用程序正在执行的操作的更多信息,我可以帮助您提供更具体的信息!
根据评论更新 好吧,你只想确保垃圾收集正确发生。我建议使用libgc库来帮助解决这个问题。 http://developers.sun.com/solaris/articles/libgc.html
我唯一想到的另一个原因就是你无意中在某个地方维护了对象的引用,所以它们只是堆积起来。