我们正在尝试在Jenkins上构建一个Maven项目,每次遇到:
[错误]线程“main”中的异常java.lang.OutOfMemoryError:请求的数组大小超过VM限制
我们尝试过参数:
-d64 -server -Xmx29G -Xms12G -XX:+UseConcMarkSweepGC -XX:+UseCompressedOops -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dcom.sun.management.jmxremot
但似乎没有任何帮助。
答案 0 :(得分:0)
我建议使用heapdump + MAT。
添加此标志以在发生内存问题时请求heapdump:
-XX:+ HeapDumpOnOutOfMemoryError
使用此标志指定文件的创建位置:
-XX:HeapDumpPath = / TMP / memory_issue
使用以下工具(MAT)打开并分析文件:
不要害怕MAT的功能,即使输出的一半对你没有意义,另一半通常足以追踪填满你记忆的东西。做得好,这项调查大约需要一个小时,然后你就会有一个错误需要修复。