当我执行JUnit测试时,我得到了这个错误消息:
java.lang.OutOfMemoryError: GC overhead limit exceeded
我知道什么是OutOfMemoryError,但是GC开销限制意味着什么?我怎么解决这个问题?
当我执行JUnit测试时,我得到了这个错误消息:
java.lang.OutOfMemoryError: GC overhead limit exceeded
我知道什么是OutOfMemoryError,但是GC开销限制意味着什么?我怎么解决这个问题?
当前回答
您还可以通过将此添加到gradle中来增加内存分配和堆大小。属性文件:
org . gradle。jvmargs = -Xmx2048M -XX: MaxHeapSize \ = 32g
它不需要2048M和32g,你想要多大就有多大。
其他回答
Java堆大小描述(xms, xmx, xmn)
-Xms size in bytes
Example : java -Xms32m
设置Java堆的初始大小。 默认大小为2097152 (2MB)。 该值必须是1024字节(1KB)的倍数且大于1024字节。 (-server标志将默认大小增加到32M。)
-Xmn size in bytes
Example : java -Xmx2m
设置Eden生成的初始Java堆大小。 默认值为640K。 (-server标志将默认大小增加到2M。)
-Xmx size in bytes
Example : java -Xmx2048m
设置Java堆可以增长到的最大大小。 默认大小为64M。 (-server标志将默认大小增加到128M。) 最大堆限制大约是2 GB (2048MB)。
Java内存参数(xms, xmx, xmn)格式化
在设置Java堆大小时,应该使用字母“m”或“m”表示MB,或使用字母“g”或“g”表示GB来指定内存参数。如果指定“MB”或“GB”,则该设置将不起作用。有效参数是这样的:
-Xms64m或-Xms64m -Xmx1g或-Xmx1g 还可以用2048MB指定2GB吗 另外,确保在指定参数时使用整数。使用-Xmx512m是一个有效的选项,但是-Xmx0.5g会导致错误。
这种推荐对某些人是有帮助的。
通过设置这个选项,稍微增加堆的大小
运行→运行配置→参数→虚拟机参数
-Xms1024M -Xmx2048M
Xms—用于最小限制
Xmx -表示最大限制
试试这个
打开构建。gradle文件
android {
dexOptions {
javaMaxHeapSize = "4g"
}
}
您可以尝试通过参考此映像来更改服务器设置,并增加用于处理的内存大小 流程更改以黄色突出显示
你也可以通过打开cmd-> set _java_opts - xmx2g来改变java堆 2g(2gb),这取决于程序的复杂程度
尽量少使用常数变量和临时变量
在Netbeans中,设计最大堆大小可能会有所帮助。执行命令Run =>设置项目配置=>自定义。在弹出窗口的运行中,进入虚拟机选项,填写-Xms2048m -Xmx2048m。它可以解决堆大小的问题。