This question already has answers here:
How to deal with “java.lang.OutOfMemoryError: Java heap space” error?
                                
                                    (19个回答)
                                
                        
                4年前关闭。
            
        

我正在使用ETL软件Pentaho(仅适度相关),它是基于Java构建的。每次经过80个循环后,我都会收到堆空间错误---我可以增加分配给Java的内存-xmx2048或您拥有的内存,但这只是“延迟”了错误并且是一个临时的解决方法。

我有VisualVM和MemoryAnalyzer,但试图找出在哪里找到导致无关对象持久化的根本原因/对象/线程。我可以在VisualVM中看到堆空间内存随时间逐渐增加。我不确定到底应该怎么做才能找到原因。在发生错误时分析堆转储?

最佳答案

有几种工具可以解决此问题:
尝试:


JProfiler
你的包


Jprofiler实际上是一个很好的工具,它可以跟踪应用程序中的内存泄漏。您可以按类或在包级别进行调整。

10-04 23:25
查看更多