本帖最后由 wormz 于 2019-2-22 22:24 编辑

太长不看:
请到https://adoptopenjdk.net/下载openj9,版本选择OpenJDK 8 (LTS),JVM选择OpenJ9,如下图
安装之后,在你的启动器里一般会有java路径这一栏,如Multimc
将该路径修改成刚刚安装好的AdoptOpenJDK的javaw.exe路径即可,JVM参数可以留空。
请使用Forge 1.12.2 的2815或者更新版本(必须!!!早期版本和openj9有兼容性问题!!!),1.7.10兼容性未知

目前的不兼容列表:
Sampler mod
nonupdate mod
Uranium服务端



以下是正文:
众所周知,Minecraft在更新到1.8之后的版本之后,因为种种原因,游戏的内存使用变得居高不下。这种问题在mod玩家中尤其致命,现在流行的大型1.12整合包如Sevtech和All the mods等通常需要5-6g内存才能带起来。纵然有Foamfix等优化mod,比起1.7.10时代对内存需求的增长仍然极为恐怖,这也是1.12目前在国内mod玩家之间不够普及的一大原因。

笔者最近在FTB reddit上闲逛的时候偶然发现了这么一个帖子
该帖子作者在里边叙述了一种通过使用另外一种Java虚拟机(openj9)大幅降低MC内存占用和启动时间,并能有效提高游戏内FPS的方法。

我在看到这个帖子之后,将本方法推荐给了黑猫等人,初步测试结果(1.7.10)效果非常好,游戏性能有明显的提升。
今天我在我目前正在开发的一个1.12整合包上进行了一下初步测试
我的配置是:i5-4670k,GTX1080,16G内存
默认内存分配为:Xmx:6500m,Xms:6500m
内存占用来自于资源管理器

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

· 测试2:原版Oracle JVM,未使用G1GC,无任何附加JVM参数
o  启动时间:3:17
o  主菜单内存占用:5814 mb
o  进入世界时间:0:53
o  游戏内帧率:290 - 310 FPS
o  游戏内内存占用:6360 mb

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

可以看到内存占用比起我们平常用的Oracle JVM有大幅降低,FPS也有非常大的提升。我相信在未来一定有更大的发展空间。

注意,本jvm可能和某些mod/服务端有未知的兼容性问题,出现情况请报告给mod/服务端作者,本文作者不对产生的任何问题负责。