今天遇到一个新项目单元测试运行时编译整个项目代码,结果编译了一会也没有看到运行结果,后来我一看看 ,项目构建的时候直接堆溢出了。
java: java.lang.OutOfMemoryError: WrappedJavaFileObject[xxxxx.java]
先说下怎么解决把 idea上可以直接在编译配置下内容 改大一些就行了 ,我改成了4096 直接就没问题了。 如果是其他的操作编译 可以在编译部分加代码指定内存大小处理
bash
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${java-version}</source>
<target>${java-version}</target>
<encoding>UTF-8</encoding>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
<fork>true</fork>
<meminitial>1024m</meminitial>
<maxmem>4096m</maxmem>
</configuration>
</plugin>

分析了一下那个类 主要还是因为类太大了,好几万行的代码 编译的时候需要实例化太多的对象 以下是我溢出以前两段时间的对比可以看到一小会居高的对象TOP3就都增长了2000+

