我有一个解析文件并将数据存储在mysql-Database中的程序。 我的问题是堆空间(我使用VisualVM跟随它们)正在增长。 内存使用量(ps aux --sort -rss)也在增长。
当HeapSize达到~128 MB的MaxHeapsize时,我得到一个OutOfMemory-Exception。
如何确定这是哪些数据?或者什么没有被处理?
答案 0 :(得分:3)
您需要使用VisualVM中的内存分析器来执行内存跟踪。
执行内存配置文件的一种简单方法是运行
jmap -histo:live {pid} | head
如果您使用的是SQL,最可能导致内存泄漏的原因是无法清理JDBC资源。我建议你确保关闭你的陈述和结果集。