极高的内存使用率 Android 工作室和模拟器

Mar*_*tis 6 ubuntu android qemu

将 Android Studio 升级到 2.3 后,我遇到了极高的内存使用率。以前,我会保持我的电脑(包括 Android Studio 和模拟器)运行数周,并且 RAM 使用量将保持在 12GB 以下。但是,升级到2.3后,系统RAM耗尽并开始使用交换内存需要大约6个小时的工作,而且在工作一整天后,几乎所有的交换内存也用完。

第一张图片是重启后系统监视器的截图: 重启后

第二个截图是单次构建后: 单次构建后

free -mh

              total        used        free      shared  buff/cache   available
Mem:            15G        5,6G        6,2G        1,1G        3,7G        8,5G
Swap:           15G          0B         15G
Run Code Online (Sandbox Code Playgroud)

我的系统:i5-6500、Ubuntu 16.10、16GB DDR4、16GB 交换。

还有什么可以帮助的吗?一些配置文件等?

稍后,当系统开始使用交换内存时,我将添加更多信息。

编辑:

想法配置:

# custom IntelliJ IDEA VM options

-Xms512m
-Xmx8g
-XX:ReservedCodeCacheSize=480m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Dawt.useSystemAAFontSettings=lcd
Run Code Online (Sandbox Code Playgroud)

摇篮属性:

org.gradle.daemon=true
org.gradle.jvmargs=-Xmx8192M
Run Code Online (Sandbox Code Playgroud)

明天,我将尝试将 xmx 从 8gb 更改为 4gb,看看它是否能提高性能。

经过几个小时的工作: 几个小时后

              total        used        free      shared  buff/cache   available
Mem:            15G         12G        230M        2,1G        3,0G        829M
Swap:           15G        2,0G         13G
Run Code Online (Sandbox Code Playgroud)

如您所见,有第三个 java 实例正在运行,我查看了它是什么——它是 Kotlin 守护进程。所以,我总共得到了 3 个 Java 实例:Kotlin、Gradle 守护进程和 Android Studio 本身。

似乎构建缓存发生了一些变化。