首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓级:什么是javaMaxHeapSize "4g"?

安卓级:什么是javaMaxHeapSize "4g"?
EN

Stack Overflow用户
提问于 2015-11-17 06:21:58
回答 4查看 42.2K关注 0票数 51

在android项目build.gradle文件中,我已经通过了这一行。

代码语言:javascript
复制
dexOptions{
    javaMaxHeapSize "4g"
}

我想知道这个javaMaxHeapSize的确切用途,以及4g是什么意思。我还能提供什么其他价值呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-11-17 07:50:53

正如它在以上回答中提到的那样,它只是指定用于dex操作的Java (JVM)的最大内存分配池的一个选项。这与提供java -xmx参数是一样的。由于它是来自这里的源代码,所以它看起来像:

代码语言:javascript
复制
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。你可以读这里的手册。上面写着,这面旗帜:

指定内存分配池的最大大小(以字节为单位)。此值必须大于2MB的倍数为1024。附加字母k或K表示千字节,或m或M表示兆字节。在运行时根据系统配置选择默认值。

在您的示例中,4g为4G,这是dex操作的最大堆大小。

票数 36
EN

Stack Overflow用户

发布于 2015-11-17 06:27:42

这是一个无文档化的选项,用于增加dex操作的堆大小:TLBTyFWVY/4TPJ2Y6khUJ

票数 9
EN

Stack Overflow用户

发布于 2019-07-06 11:23:20

这是gradle在创建构建时可以使用的最大Ram (apk文件)。这可以根据项目的结构和大小进行更改,至少允许使用"4g“Ram是安全的,但是有时我们也需要将其提高,就像我们希望在版本构建中使用minifyEnabled trueshrinkResources真正的标志一样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33750404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档