我正在使用JAVA的play框架作为我的应用程序。我的应用程序消耗的内存多于分配的内存有时候我会收到像java.lang.OutOfMemoryException
这样的例外情况。请帮帮我,如何在java中找到内存泄漏以及如何减少java的内存使用量?我正在使用jProfiler
来查找内存泄漏,但我对此没有任何改进。
答案 0 :(得分:3)
在OOME发生时捕获堆转储的好方法是添加VM参数-XX:+HeapDumpOnOutOfMemoryError
。您将获得可由JProfiler和其他工具打开的HPROF堆转储。
在JProfiler中,检查过多内存消耗的第一站是堆walker的“Biggest objects”视图。在许多情况下,很明显为什么会使用太多的内存。