内存优化指令解析
📋 配置总览与源码解析
♻️
G1GC - 适用于Java8版本优化
[选下面的不要选我]
-XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:G1HeapRegionSize=4M -XX:G1NewSizePercent=100 -XX:G1MaxNewSizePercent=100 -XX:+AlwaysTenure -XX:-G1UseAdaptiveIHOP -XX:InitiatingHeapOccupancyPercent=80 -XX:G1MixedGCLiveThresholdPercent=95 -XX:+ParallelRefProcEnabled
🔍 逐行参数解析(点击展开)
-XX:+IgnoreUnrecognizedVMOptions
忽略无法识别的VM选项,确保配置在不同JDK版本间的兼容性
-XX:+UnlockExperimentalVMOptions
解锁实验性VM选项,允许使用非标准参数
-XX:+AlwaysPreTouch
启动时预先触碰所有内存页,减少运行时的缺页中断,提升启动后性能稳定性
-XX:+DisableExplicitGC
禁用显式GC调用(System.gc()),防止插件不当调用导致卡顿
-XX:+UseG1GC
启用G1垃圾收集器,适用于大堆内存(>4GB)的低延迟场景
-XX:MaxGCPauseMillis=100
设置最大GC暂停时间为100毫秒,平衡吞吐量与延迟
-XX:G1HeapRegionSize=4M
设置G1区域大小为4MB,优化大对象分配性能
-XX:G1NewSizePercent=100 / -XX:G1MaxNewSizePercent=100
新生代大小占比固定为100%,最大化年轻代空间以减少晋升到老年代的对象
-XX:+AlwaysTenure
对象在Survivor区存活即晋升到老年代,减少Survivor区拷贝开销
-XX:-G1UseAdaptiveIHOP
关闭自适应IHOP(初始堆占用百分比),使用固定阈值控制并发标记启动
-XX:InitiatingHeapOccupancyPercent=80
当堆占用达到80%时启动并发标记周期,提前开始垃圾回收防止内存不足
-XX:G1MixedGCLiveThresholdPercent=95
混合GC时只回收存活率低于95%的区域,提高回收效率
-XX:+ParallelRefProcEnabled
并行处理引用(软/弱/虚引用),加速GC过程中的引用清理
💡 适用场景:Java 8-11、中等规模服务器(20-50人)、1.12.2/1.16.5等旧版Mod服
⚡
ZGC - 适用于Java21+版本优化
[选下面的不要选我]
-XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:-UseG1GC -XX:+UseZGC -XX:+ZGenerational -XX:-ZProactive --add-modules jdk.incubator.vector
🔍 逐行参数解析(点击展开)
-XX:+IgnoreUnrecognizedVMOptions / -XX:+UnlockExperimentalVMOptions
同上,确保兼容性与实验特性支持
-XX:+AlwaysPreTouch / -XX:+DisableExplicitGC
同上,预触碰内存+禁用显式GC
-XX:-UseG1GC
显式关闭G1GC,确保切换到ZGC
-XX:+UseZGC
启用Z垃圾收集器,提供亚毫秒级(<1ms)暂停时间
-XX:+ZGenerational
启用分代ZGC,将堆分为年轻代和老年代,提升短期对象的回收效率(Java 21+特性)
-XX:-ZProactive
关闭ZGC的主动GC,仅在必要时才执行GC,减少不必要的CPU消耗
–add-modules jdk.incubator.vector
添加向量API模块(孵化中),利用SIMD指令加速向量计算,提升游戏性能
💡 适用场景:Java 21+、原版服务器、轻量Mod服、对延迟敏感(PVP/生电)
⚠️ 重要使用须知
- Java版本严格匹配:G1GC方案仅适用于Java 8-11,ZGC方案仅适用于Java 21+,混用会导致启动失败
- 内存分配建议:虽然ZGC支持TB级堆内存,但建议MC服务器仍按玩家数分配(原版4-6GB,大型Mod 16GB+)
- 紧凑版副作用:更频繁的GC可能导致CPU占用略高(约5-10%),建议在CPU核心充足(4核+)时使用
- 向量API:
--add-modules jdk.incubator.vector为实验特性,如遇到启动警告可移除该参数
最后编辑:xiaobei 更新时间:2026-02-16 17:52