= 创作分享 =
你问我答
Java11有没有什么优化JVM参数
6371peter

Java11有没有什么优化JVM参数

6371peter 于 2021-7-31 10:18 ( 2年前 ) [复制链接] [只看楼主] [打印]
3122 1
100RF
本帖最后由 QQ酱132585 于 2021-7-31 10:54 编辑

在玩1.16.5的整合包的时候加了现代化UI,要用Java11,之前的Java8的启动参数无法进游戏,有没有Java11能用的优化JVM参数

最佳答案

查看完整内容

需要注意的是,JVM参数与对应的java版本有关,跨大版本需要重新验证其有效性 现在阅读量比较多的帖子里常用的是CMS(UseConcMarkSweepGC),它从java 9开始不再推荐使用,在14被移除 java8起可以用G1GC,官方启动器和各个常用的启动器现在默认都是这个,只需要删掉自己加的参数即可。 在大多数情况下,这个参数其实表现良好 对于java11, openjdk(hotspot)版的java11多了个shenandoahGC(实验性) oracle版的多了个ZGC(实验性 ...
发表于 2021-7-31 10:18:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

回复 | 举报

该帖共收到 1 条回复!
craftkuro
本帖最后由 craftkuro 于 2021-8-1 00:10 编辑

需要注意的是,JVM参数与对应的java版本有关,跨大版本需要重新验证其有效性
现在阅读量比较多的帖子里常用的是CMS(UseConcMarkSweepGC),它从java 9开始不再推荐使用,在14被移除

java8起可以用G1GC,官方启动器和各个常用的启动器现在默认都是这个,只需要删掉自己加的参数即可。
在大多数情况下,这个参数其实表现良好

对于java11,

openjdk(hotspot)版的java11多了个shenandoahGC(实验性)

oracle版的多了个ZGC(实验性),可惜据Oracle的资料(https://wiki.openjdk.java.net/display/zgc/Main),只在linux上有,Windows直到JDK 14才有,再说,现在大家也没法很方便地下到oracle的java 11 jre了


于是,有3种方案:
1,不使用自定义参数,官方启动器默认的参数如下,其实表现挺好的
  1. -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
复制代码


2,去各种地方找个使用G1GC的参数

3,试试新的shenandoahgc,我目前用的参数如下:
  1. -Xms3G -Xmx6G -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=compact -XX:ShenandoahAllocationThreshold=20
复制代码

把它填在启动器里并打开“不添加默认的JVM参数”
需要注意的是:
- 记得改Xms和Xmx,Xmx量力而行,Xms填游戏里实际能用到的内存总数向上取整1G,比如游戏里F3看到占用2600M,就在参数里填3G.,如果是2950M,就在参数里填4G或者3500M,因为客户端开久了这个内存占用会往上涨一点
- 只能用于openjdk 11及openjdk的更高版本,hotspot虚拟机
- 只建议用于至少6核心或更高配置的电脑,核心数太少的话反而拉低帧数并带来比G1GC更长时间的停顿,在双核的电脑上测试时就发现了这个问题
该参数实际用下来比默认的G1GC占内存少一点点,但会带来一点额外的多核心负载,当核心数够多时影响不大
发表于 2021-7-31 10:18:49 | 只看该作者

回复 | 举报

百科目前不允许匿名发帖哦~ 请先 [ 登陆 ][ 注册 ] 吧~

本版积分规则

发新帖
  • 回复
  • 点评
  • 评分

[ MC百科(mcmod.cn) 除另有声明,所有开放公共编辑的内容均使用 BY-NC-SA 3.0 协议 ]

Minecraft百科CC协议
快速回复 返回顶部 返回列表