在大型Java堆转储中查找内存泄漏的方法
- 论坛
- 在大型Java堆转储中查找内存泄漏的方法
19 浏览
在大型Java堆转储中查找内存泄漏的方法
我需要找到一个Java应用程序中的内存泄漏问题。我对此有一些经验,但希望能得到一些关于方法论和策略的建议。欢迎任何参考和建议。
关于我们的情况:
- 堆转储文件超过1GB。
- 我们有5个不同场合的堆转储文件。
- 我们没有任何测试用例来引发这个问题。这只会在(庞大的)系统测试环境中,在至少一周的使用后才会发生。
- 该系统是建立在一个内部开发的遗留框架上,这个框架有太多的设计缺陷,无法一一列举。
- 没有人对这个框架有深入的了解。它已经交给了一个在印度的家伙,他几乎跟得上回复电子邮件的速度。
- 我们已经随着时间进行了快照堆转储,并得出结论:没有一个组件会随着时间的推移而增加。一切都是缓慢增长。
- 上述事实指向了这样一个方向:是框架自制的ORM系统在不断增加使用量。 (该系统将对象映射到文件中?所以并不是真正的ORM)
问题:在企业级应用程序中,您是如何成功追踪和解决内存泄漏问题的方法论?