如何确定Java应用程序中导致高内存使用量的原因?

时间:2014-03-22 20:42:14

标签: java object memory-leaks heap

从分析堆使用情况和创建的对象数量来看,我认为这是导致我的程序占用大量内存并导致其运行速度低于预期的原因。

如何确定导致此高内存使用率的原因并确定代码的哪个位实际导致它。

我已经使用Plumbr尝试识别任何内存泄漏,并且他们说没有内存泄漏。

以下是堆使用情况和使用的对象的图像。

Heap and tracked objects

1 个答案:

答案 0 :(得分:2)

如果您的代码经常分配新对象,则垃圾收集可能会经常运行,从而减慢您的程序速度。我在办公室里使用JProfiler来追踪这类问题。它告诉您分配了多少个特定类的对象,并且可以轻松找到分配热点。这是一个商业软件,但我相信他们有一条线索。