java堆空间OutOfMemoryError分析工具

2024-05-02

我正在得到一个OutOfMemoryError: Java heap space

我可以使用任何工具来查找根本原因吗?


您可以使用一些分析工具(例如 eclipse mat)分析应用程序的堆转储,以查看哪些内容消耗了多少堆。

但首先您需要获取应用程序的堆转储。

拥有 JVM自动地当发生 OOM 错误时为您生成堆转储,您可以使用-XX:+HeapDumpOnOutOfMemoryError选项。除此之外,您还可以使用-XX:HeapDumpPath告诉 JVM 在哪里生成文件的选项。

java -XX:HeapDumpPath="D:\heapdumps\YourApp.hprof" -XX:+HeapDumpOnOutOfMemoryError -jar YourApp.jar

该文件生成后,您可以在 mat 中打开它并进行分析。


你也可以manually在应用程序运行时随时生成堆转储。为此,您可以使用jmap http://docs.oracle.com/javase/6/docs/technotes/tools/share/jmap.htmljdk自带的命令。

jmap -dump:live,format=b,file="D:\heapdumps\YourApp.hprof" process_id_of_your_app

您可以使用该工具 -jps http://docs.oracle.com/javase/6/docs/technotes/tools/share/jps.html,它也带有jdk,可以轻松找到您的应用程序的进程id。

jps -m
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java堆空间OutOfMemoryError分析工具 的相关文章

随机推荐