在一个android项目 build.gradle 文件中,我已经通过了这一行
dexOptions{
javaMaxHeapSize "4g"
}
我想知道这个 javaMaxHeapSize 的确切目的,以及 4g 是什么意思。我还能提供什么其他值?
最佳答案
如answer above中所述,这只是为dex操作指定Java虚拟机(JVM)的最大内存分配池的选项。与向Java提供-xmx
参数相同。由于它是here的源代码,因此它的 setter 看起来像:
if (theJavaMaxHeapSize.matches("\\d+[kKmMgGtT]?")) {
javaMaxHeapSize = theJavaMaxHeapSize
} else {
throw new IllegalArgumentException(
"Invalid max heap size DexOption. See `man java` for valid -Xmx arguments.")
}
因此,您可以看到,接受的值应该与
\d+[kKmMgGtT]?
模式匹配,因此,不,甚至引用了man java
来了解如何设置-xmx
。您可以阅读the man page here。它说,这个标志:在您的示例中,
4g
是4 GB,这是dex操作的最大堆大小。