163天 花绮千雪Offical

重要的人越来越少,剩下的人也越来越重要 ​​

OpenJ9 高性能JAVA(主要说明我的世界用途)

发布于 1个月前 / 72 次围观 / 0 条评论 / 默认 / Hanasaki Chiyuki

官方:https://adoptopenjdk.net/

1.png

这里主要用于我的世界用途

 

在我的世界游戏实际测试中

 

以下是测试结果:
 
· 测试原版Oracle JVM,使用G1GC
o  启动时间:3:31
o  主菜单内存占用:7837 mb
o  进入世界时间:0:57
o  游戏内帧率:300- 310 FPS
o  游戏内内存占用: 8450 mb



 
· 测试Openj9,无任何附加JVM参数
o  启动时间:3:14
o  主菜单内存占用:4650 mb
o  进入世界时间:0:50
o  游戏内帧率:370 - 380 FPS
o  游戏内内存占用:5300 mb

可以看到内存占用比起我们平常用的Oracle JVM有大幅降低,FPS也有非常大的提升。

 

 

在我的世界服务器用途

 

普通JAVAH环境

2.png

在OpenJ9 环境

3.png

参数本体

 

java -server -Xmx最大内存M -Xms最小内存M -Xss512K -Xaggressive -Xalwaysclassgc [-XcompilationThreads4] -Xconmeter:dynamic [-Xgcpolicy:metronome] -Xshareclasses [-Xtune:virtualized] -jar 服务端核心.jar

参数解释

 

 

-server
服务器运行模式,为持久运行优化

-Xms
初始堆大小,一般是物理内存的1/64(<1GB),和-Xmx一样大可以节省一点CPU资源

-Xmx
最大堆大小,一般是物理内存的1/4(<1GB),不过MC服务端对于内存的要求挺高的,能用上的都用上吧

-Xss
每个线程的堆栈大小,OpenJ9默认是1024KB,不过另一位服主的帖指出,对于MC,512KB足够了

-Xaggressive
更激进的性能优化,OpenJ9的文档指出它会在未来版本作为默认选项

-Xalwaysclassgc
始终在全局垃圾回收期间执行动态类卸载检查,减少内存占用

-XcompilationThreads4
指定JIT编译器使用的编译线程数,最高只能设到4,如果服务器物理核心不足4个,设置成物理核心的一半

-Xconmeter:dynamic
动态检测大对象区或小对象区域的使用情况

-Xgcpolicy:metronome
启用metronome垃圾收集器,可以让垃圾收集时的瞬卡更短暂。仅支持AIX(没人用这个开MC服吧)和Linux,Windows就不要加了。

-Xshareclasses
OpenJ9的高速类共享功能,减少内存占用与启动时间,适合多个JVM运行相似代码的环境,或定期重启JVM的环境,对于群组服非常有用。

-Xtune:virtualized
假如你的服务器运行在虚拟化环境中(例如阿里云、腾讯云等等),使用这一选项可以在空闲时减少OpenJ9 VM CPU消耗,有可能会略微提升性能与减少内存占用,不过代价是吞吐量的少量损失。实体机环境不要加! 

 

注意事项

 

1.此优化仅适用于OpenJ9
2.优化效果因环境差异可能会不同

 

 

下载地址 

蓝奏网盘

[百度已收录]
Sitemap