如何修复内存泄漏?

时间:2010-12-15 11:09:01

标签: java

  

可能重复:
  General strategy to resolve Java memory leak?

我有一个我在本地运行的独立程序,最近我发现它有内存泄漏,现在我们唯一的解决方案是每天重启它。找到内存泄漏的最佳方法是什么?我们应该使用哪种工具和方法?

提前致谢

1 个答案:

答案 0 :(得分:2)

Profilers通常有助于在复杂程序中查找内存泄漏。但是如果有问题的程序很小,你可以通过仔细阅读源代码来尝试找到内存泄漏。

在阅读源代码时,请考虑以下问题:

  1. 您的计划正在采取什么行动 反复?正在做什么对象 在这个行动中创造了什么?
  2. 需要哪些创建的对象 行动结束后的程序 完成?
  3. 创建一次对象(例如在程序中 启动)并留在内存中 直至最后?
  4. 可以从步骤#3中标识的对象访问前面步骤中标识的任何对象。如果您发现可以从步骤3中的对象访问某些可丢弃的对象,请考虑如何破坏此可访问性。