JetBrains系列IDE开启ZGC模式

ZGC(The Z Garbage Collector)是JDK 11中推出的一款低延迟垃圾回收器,它的设计目标包括:

默认情况下,JetBrains系列IDE都是没有开启ZGC垃圾回收模式的。要看来ZGC模式很简单. 点击如下菜单:

Help -> Edit Custom VM Options...

在打开的vmoptions陪着文件中添加

-XX:+UnlockExperimentalVMOptions 
-XX:+UseZGC

更多的配置参考:

-Djdk.module.illegalAccess.silent=true
-Dsun.java2d.metal=true

--illegal-access=warn
--add-opens=java.desktop/java.awt.event=ALL-UNNAMED
--add-opens=java.desktop/sun.font=ALL-UNNAMED
--add-opens=java.desktop/java.awt=ALL-UNNAMED
--add-opens=java.desktop/sun.awt=ALL-UNNAMED
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.base/jdk.internal.misc=ALL-UNNAMED
--add-opens=java.base/jdk.internal.loader=ALL-UNNAMED
--add-opens=java.desktop/javax.swing=ALL-UNNAMED
--add-opens=java.desktop/sun.swing=ALL-UNNAMED
--add-opens=java.desktop/sun.lwawt.macosx=ALL-UNNAMED
--add-opens=java.desktop/sun.lwawt=ALL-UNNAMED
--add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED
--add-opens=java.desktop/java.awt.peer=ALL-UNNAMED
--add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED
--add-opens=java.desktop/sun.awt.windows=ALL-UNNAMED
--add-opens=java.desktop/sun.awt.image=ALL-UNNAMED
--add-opens=java.desktop/sun.java2d=ALL-UNNAMED
--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
--add-opens=jdk.jdi/com.sun.tools.javac.code=ALL-UNNAMED
--add-opens=jdk.jdi/com.sun.tools.jdi=ALL-UNNAMED
--add-opens=java.base/com.sun.tools.jdi=ALL-UNNAMED
--add-exports=java.desktop/sun.font=ALL-UNNAMED
--add-exports=java.desktop/com.apple.eawt=ALL-UNNAMED
--add-exports=java.desktop/com.apple.laf=ALL-UNNAMED
--add-exports=java.desktop/com.apple.eawt.event=ALL-UNNAMED
--add-exports=java.desktop/sun.awt.image=ALL-UNNAMED


-server
-Xms4g
-Xmx4g
-XX:NewRatio=3

# 启动ZGC
-XX:+UnlockExperimentalVMOptions 
-XX:+UseZGC
# JIT编译代码缓存
-XX:ReservedCodeCacheSize=512m
-XX:InitialCodeCacheSize=512m
# 开启JIT分层编译
-XX:+TieredCompilation
# 并发回收垃圾的线程比, 默认是总核数的12.5%(8核是1)
-XX:ConcGCThreads=2 
-XX:ParallelGCThreads:4
# 主动开启回收
-XX:+UnlockDiagnosticVMOptions 
-XX:+ZProactive

# 软引用存活时间
-XX:SoftRefLRUPolicyMSPerMB=50
# 强制使用 IPv4 协议栈,当IPv6出现问题时,可以设置改选项
-Djava.net.preferIPv4Stack=true

Android Studio 是基于IDEA开发的,所以这些设置同样适用于 Android Studio.