今天遇到一个新项目单元测试运行时编译整个项目代码,结果编译了一会也没有看到运行结果,后来我一看看 ,项目构建的时候直接堆溢出了。

java: java.lang.OutOfMemoryError: WrappedJavaFileObject[xxxxx.java]
先说下怎么解决把 idea上可以直接在编译配置下内容 改大一些就行了 ,我改成了4096 直接就没问题了。 如果是其他的操作编译 可以在编译部分加代码指定内存大小处理

   <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+
在这里插入图片描述

在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐