Java 内存使用量持续增长直到出现 OutOfMemory 异常

Java Memory usage continuously growing till OutOfMemory Exception

我有一个程序可以解析文件并将数据存储在 mysql-Database 中。 我的问题是堆 space(我使用 VisualVM 来跟踪它们)正在增长。 并且内存使用量(ps aux --sort -rss)也在增长。

当 HeapSize 达到 MaxHeapsize ~128 MB 时,我得到一个 OutOfMemory-Exception。

如何确定这是哪些数据?或者什么没有被释放?

您需要使用 VisualVM 中的内存分析器进行内存跟踪。

一个简单的内存分析方法是运行

jmap -histo:live {pid} | head

如果您正在使用 SQL,内存泄漏的最可能原因是未能清理您的 JDBC 资源。我建议您确保关闭 Statements 和 ResultSets。