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

  • 内容
  • 相关

官方: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.优化效果因环境差异可能会不同

下载地址 

本地下载 百度网盘 蓝奏网盘 迅乐网盘 

作者信息
头像
描述: 一起用互联网帮助更多人

本文标签:

本文链接:OpenJ9 高性能JAVA(主要说明我的世界用途) - http://www.go176.net/post-2198.html

剑客网,一起用互联网帮助更多人