线程“main”中的异常java.lang.OutOfMemoryError:请求的数组大小超过VM限制

时间:2017-05-05 06:29:02

标签: java maven jenkins

我们正在尝试在Jenkins上构建一个Maven项目,每次遇到:

  

[错误]线程“main”中的异常java.lang.OutOfMemoryError:请求的数组大小超过VM限制

我们尝试过参数:

-d64 -server -Xmx29G -Xms12G -XX:+UseConcMarkSweepGC -XX:+UseCompressedOops  -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dcom.sun.management.jmxremot

但似乎没有任何帮助。

1 个答案:

答案 0 :(得分:0)

我建议使用heapdump + MAT。

  • 添加此标志以在发生内存问题时请求heapdump:

    -XX:+ HeapDumpOnOutOfMemoryError

  • 使用此标志指定文件的创建位置:

    -XX:HeapDumpPath = / TMP / memory_issue

  • 使用以下工具(MAT)打开并分析文件:

    Memory Analyzer Tool

不要害怕MAT的功能,即使输出的一半对你没有意义,另一半通常足以追踪填满你记忆的东西。做得好,这项调查大约需要一个小时,然后你就会有一个错误需要修复。