OpenJ9 高性能JAVA(主要说明我的世界用途)
这里主要用于我的世界用途
在我的世界游戏实际测试中
以下是测试结果:
· 测试原版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环境
在OpenJ9 环境
参数本体
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.优化效果因环境差异可能会不同 |
下载地址
本地下载 百度网盘 蓝奏网盘 迅乐网盘