@
valord577 小内存用 ZGC 下不会比 G1 明显优势的吧?
下面是我的 idea.vmoptions 配置参考
# 忽略未识别参数
-XX:+IgnoreUnrecognizedVMOptions
# 元空间大小
-XX:MetaspaceSize=512M
-XX:MaxMetaspaceSize=1G
# 增加堆内存大小
-Xms2g
-Xmx6g
# 调整代码缓存大小
-XX:InitialCodeCacheSize=512m
-XX:ReservedCodeCacheSize=512m
# 调整 JIT 编译器的参数
-XX:CICompilerCount=2
-XX:TieredStopAtLevel=1
-XX:MaxInlineLevel=3
-XX:Tier4MinInvocationThreshold=100000
-XX:Tier4InvocationThreshold=110000
-XX:Tier4CompileThreshold=120000
-XX:-DontCompileHugeMethods
# 关闭热度衰减
-XX:-UseCounterDecay
# 编译阈值,被调用多少次后,就编译为机器码,在 client 下默认是 933 server 默认是 140
-XX:OnStackReplacePercentage=933
#立即分配内存
-XX:+AlwaysPreTouch
# int 缓存
-XX:AutoBoxCacheMax=20000
# gc 收集器
# 使用 G1 收集器
-XX:+UseG1GC
#G1 开启字符串去重
-XX:+UseStringDeduplication
#GC 最大暂停时间(毫秒, 默认 200)
#低配置机器( 8GB 内存以下): 设置 200ms 或更高,以减少 GC 的频率,避免频繁触发
#高配置机器( 16GB 内存或以上): 设置为 100ms ,以追求更流畅的用户体验。
#小型项目:100ms 足够,保证交互流畅。
#大型项目(超过 10 万行代码):建议设置为 150ms 到 200ms ,避免频繁的 GC 暂停。
-XX:MaxGCPauseMillis=100
-XX:SoftRefLRUPolicyMSPerMB=50
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Dsun.io.useCanonCaches=false
-Dsun.java2d.metal=true
-Djbr.catch.SIGABRT=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-Djdk.attach.allowAttachSelf=true
-Djdk.module.illegalAccess.silent=true
-Dkotlinx.coroutines.debug=off
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
-XX:CompileCommand=exclude,com/intellij/openapi/vfs/impl/FilePartNodeRoot,trieDescend
# 解决一些小问题
-Dide.no.platform.update=true
-Djava.net.preferIPv4Stack=true
-Dfile.encoding=UTF-8
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED