Minecraft(我的世界)中文论坛

标题: 使用Openj9大幅降低MC的内存占用,提高FPS和TPS,炸鸡也能玩1.12的mod了

作者: wormz    时间: 2019-2-22 19:24
标题: 使用Openj9大幅降低MC的内存占用,提高FPS和TPS,炸鸡也能玩1.12的mod了
本帖最后由 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上闲逛的时候偶然发现了这么一个帖子
https://www.reddit.com/r/feedthebeast/comments/as6p87/java_vms_and_you_how_to_reduce_your_ram_and_cpu/
该帖子作者在里边叙述了一种通过使用另外一种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/服务端作者,本文作者不对产生的任何问题负责。


作者: ruhuasiyu    时间: 2019-2-22 19:38
这个有点厉害了……看看能不能拯救下我的渣机
作者: 1315989526    时间: 2019-2-22 19:44
是真的厉害,佩服大佬,cpu和内存占用下来好多,启动也快很多
作者: saysei    时间: 2019-2-22 20:10
好东西呀 点个赞
作者: paperbox    时间: 2019-2-22 20:29
这是大宝贝鸭,资瓷一哈
作者: .0a.a0.    时间: 2019-2-22 21:18
实测
1.12.2林业mod会崩溃
版本: forestry_1.12.2-5.8.1.322
Forge: forge1.12.2-14.23.5.2814

以及这个东西真的能大幅度降低内存占用,尤其在大型整合包中效果明显
作者: .0a.a0.    时间: 2019-2-22 21:23
.0a.a0. 发表于 2019-2-22 21:18
实测
1.12.2林业mod会崩溃
版本: forestry_1.12.2-5.8.1.322

以上是Release版测试,实际上
林业在curseforge的5.8.2.383Beta版本(2天前更新)没有问题
其余未测试
作者: snow131313    时间: 2019-2-22 21:24
是个好兆头!刚刚我试了下,效果十分明显,原本需要使用6G启动的包现在大概4G+就ok,加载速度明显变快,我觉得很棒
作者: 117779284    时间: 2019-2-22 22:13
我刚要放弃1.12.2MOD服。。你就给我出现这个??
嗯嗯那。。真香。。
作者: zyjking    时间: 2019-2-22 22:25
好东西先收藏了,看看以后说不定会用到
作者: Twilight_Two    时间: 2019-2-23 10:55
如果对1.7.10很有用的话那就好了。今天就去测试一下。不过是不是电脑越好优化效果越好呢。。。减少内存使用的同时会不会提高cpu的使用呢。。。
作者: 锁天ST    时间: 2019-2-23 11:56
牛逼哄哄,感谢大佬:)
作者: 18007131696@163    时间: 2019-2-23 13:20
神乎其技,不服不行!
作者: 夏小沫    时间: 2019-2-23 13:36
u端最新版已经兼容了,但是测试发现 神秘时代4 无法兼容
作者: Twilight_Two    时间: 2019-2-23 13:48
有了这个就不需要我们以前一般安装的Java8了吗
作者: KHML    时间: 2019-2-23 14:57

我的怎么识别不出来
作者: (=°ω°)丿    时间: 2019-2-23 17:15
游戏的内存使用变得居高不下。

是 Mojang 的锅还是 Sun 的锅?
作者: wormz    时间: 2019-2-23 19:14
KHML 发表于 2019-2-23 14:57
我的怎么识别不出来

b博上也有人遇到这种,换个启动器试试
作者: wormz    时间: 2019-2-23 19:15
夏小沫 发表于 2019-2-23 13:36
u端最新版已经兼容了,但是测试发现 神秘时代4 无法兼容

我还以为u端已经弃坑了。。。
作者: wormz    时间: 2019-2-23 19:16
.0a.a0. 发表于 2019-2-22 21:23
以上是Release版测试,实际上
林业在curseforge的5.8.2.383Beta版本(2天前更新)没有问题
其余未测试 ...

报告一下作者吧
作者: .0a.a0.    时间: 2019-2-23 21:22
wormz 发表于 2019-2-23 19:16
报告一下作者吧

既然新的beta版本没问题那就没必要了
作者: SnowWings    时间: 2019-2-24 01:45
实测1.7.10的gtnh可用
作者: 1a2s3d4f1    时间: 2019-2-24 11:40
本帖最后由 1a2s3d4f1 于 2019-2-24 11:43 编辑

1.14的优化真的是负优化,内存占用更高,1024mb内存实际就占3g内存,用openj9也就降低了一点(我用的集显)看来1.14的整合包没4g以上内存就根本别想启动,差点就死机了,原来的jdk8就内存占满卡死了
作者: 浮尔魔司Ya    时间: 2019-2-24 16:10
提高帧率可以的呀 有些mod很痛苦的
作者: 233无名    时间: 2019-2-24 18:08
实测 在mods数量几乎相同的情况下 1.12.2内存使用与1.7.10几乎一样
可惜 由于我的破N3450 FPS并不高。。过两天试试在那台2G+AMD速龙260u的机器上看看能装多少模组不卡。。。
另外 问一下 G1GC是什么?默认是打开的吗?如果是,怎么关闭?(教科书式问法XD)
作者: 1a2s3d4f1    时间: 2019-2-24 20:36
本帖最后由 1a2s3d4f1 于 2019-3-1 17:16 编辑
233无名 发表于 2019-2-24 18:08
实测 在mods数量几乎相同的情况下 1.12.2内存使用与1.7.10几乎一样
可惜 由于我的破N3450 FPS并不高。。过 ...

内存回收的,默认关闭,HMCL的参数里有启动这个的-XX:+UseG1GC参数,有的启动器默认不启动可以添加参数-XX:+UseG1GC打开
作者: roothu    时间: 2019-2-25 10:45
没看懂什么情况 1.13.2能用吗?我自己测试内存是占用变少了 可是游戏非常卡,个位帧数更本不能玩
作者: 233无名    时间: 2019-2-25 18:04
1a2s3d4f1 发表于 2019-2-24 20:36
内存回收的,默认关闭,HMCL的参数里有启动这个的-XX:+UseG1GC参数,有的启动器默认不启动可以添加参数-X ...

既然是内存回收,并且HMCL还默认添加了,那应该起到优化、减少内存占用的作用吧...
为什么在帖子里内存比不加的多了那么多,启动时间也变长,仅仅是Fps提升了一点点呢。。

...难道作者写反了?
作者: wormz    时间: 2019-2-26 19:02
G1GC理论上来讲是比默认的性能更好些的,不过我也不知道为什么内存占用多那么多(可能是我xmx=xms吧

作者: Radisson    时间: 2019-2-26 22:03
虽然我不开服但还是支持
作者: 星星点亮    时间: 2019-2-28 22:27
下载不动呢,为啥
作者: 1a2s3d4f1    时间: 2019-3-1 16:29
本帖最后由 1a2s3d4f1 于 2020-5-3 19:01 编辑

测试用openj9也可以优化HMCL或其他java程序(可能出现界面文件,HMCL不会),运行HMCL需要安装OpenJFK,不过我提取了普通java8里的javafx部分,测试也可以启动HMCL(还分位数)32位的Openj9必须用32位的JavaFX,不然会崩溃
链接:https://pan.baidu.com/s/1o9y8QohqiNvC7BThULmQgg 提取码:0fsy
天翼云:https://cloud.189.cn/t/IbQjI3uEnQny




作者: 金子89    时间: 2019-3-3 15:00
话说...1.12.1的原版+forge会有什么不兼容?暂时还没发现
作者: ldw0711    时间: 2019-3-3 15:36
linux服务器可以用吗
作者: youyoudeminger    时间: 2019-3-3 15:41
ldw0711 发表于 2019-3-3 15:36
linux服务器可以用吗

可以(即答)
作者: youyoudeminger    时间: 2019-3-3 17:07
本帖最后由 youyoudeminger 于 2020-3-20 12:03 编辑

由于源站使用的是Github下载源,而Github使用的是aws云储存,国内经常无法下载或者下载很慢,于是我做了一个镜像源
注意:一般来说只需要安装JRE就可以运行游戏,使用方法看主楼
Windows64位:JDK          JRE          JavaFx
Windows32位:JDK          JRE          JavaFx
Linux64位:JDK          JRE          JavaFx
MacOS64位:JDK          JRE          JavaFx
由于网站被简单好用的一键删库面板(池沼)搞没了,以上所有链接均已失效


作者: 1a2s3d4f1    时间: 2019-3-4 12:53
youyoudeminger 发表于 2019-3-3 17:07
由于源站使用的是Github下载源,而Github使用的是aws云储存,国内经常无法下载或者下载很慢,于是我做了一 ...

如果楼主给了置顶,你能把我搞得javafx部分放上去吗? 经过测试windows的都正常,覆盖后可以用openj9运行HMCL或其他的程序(其他平台未知)
作者: youyoudeminger    时间: 2019-3-4 13:10
本帖最后由 youyoudeminger 于 2019-3-4 13:11 编辑
1a2s3d4f1 发表于 2019-3-4 12:53
如果楼主给了置顶,你能把我搞得javafx部分放上去吗? 经过测试windows的都正常,覆盖后可以用openj9运行HM ...

可以的呀~~
作者: youyoudeminger    时间: 2019-3-4 13:27
1a2s3d4f1 发表于 2019-3-4 12:53
如果楼主给了置顶,你能把我搞得javafx部分放上去吗? 经过测试windows的都正常,覆盖后可以用openj9运行HM ...

已经添加到服务器了
作者: 1a2s3d4f1    时间: 2019-3-5 12:44
Twilight_Two 发表于 2019-2-23 13:48
有了这个就不需要我们以前一般安装的Java8了吗

可以不安装java8,但是要安装javafx(在36楼下载)
作者: 117779284    时间: 2019-3-6 14:42
其实最主要的是解决2G电脑占用内存的问题。
这个在少量MOD的客户端里没有效果·
作者: 书好点    时间: 2019-3-6 20:16
楼主辛苦,东西收下了
作者: PVWXX    时间: 2019-3-6 21:32
感谢楼主分享
作者: RP许豆    时间: 2019-3-7 09:45
请问这个对1.13.2原版单机提高fps,降低内存有效吗?
作者: 可乐加薯片    时间: 2019-3-7 12:05
点赞.........
作者: 可乐加薯片    时间: 2019-3-7 12:06
虽然没看懂,但觉得好厉害的样子
作者: 1902014904    时间: 2019-3-8 08:14

作者: 1902014904    时间: 2019-3-8 08:39

作者: 眀玥    时间: 2019-3-11 23:28
请问,能手把手得教吗?
原谅我我没看懂,主要是压缩不知道怎么压缩,4000多个
谢谢

作者: aiaiioi    时间: 2019-3-13 23:30
尝试了下,确实有所提高.感谢`
作者: 灬屮灬屮灬    时间: 2019-3-14 14:47
提示: 作者被禁止或删除 内容自动屏蔽
作者: 黄金小猪    时间: 2019-3-21 21:17
为啥老是在快下好时卡进度
作者: 543355801    时间: 2019-3-22 07:53
试试catserver能不能用(逃)
作者: xiaodai_dada    时间: 2019-3-22 09:04
真是好东西呀
作者: 543355801    时间: 2019-3-22 13:44
https://www.oschina.net/translate/openj9-jvm-shootout
https://www.jianshu.com/p/cc0738fd554b
原来是openj9对于java内存管理机制进行了优化。
@wormz
作者: kissxiaozhou    时间: 2019-3-22 17:52
完成任务
作者: 茅场晶彦    时间: 2019-3-22 17:58
mark,以后会用到
作者: 赵鑫洋    时间: 2019-3-22 23:49
不支持uriam不支持Uranium服务端好伤。。。只能换核心了么。。。
作者: lm2意米    时间: 2019-3-23 07:48
下载了。
作者: 1a2s3d4f1    时间: 2019-3-23 11:33
本帖最后由 1a2s3d4f1 于 2019-4-4 21:38 编辑

最近1.14快照的一个小问题
导致openj9启动的直接崩掉,不知道以后会不会修复,这个普通jvm不会出事,就是崩openj9
作者: 麦兜国丰    时间: 2019-3-26 22:42
at org.objectweb.asm.Frame.a(Unknown Source) ~[asm-all-5.2.jar:5.2]


        at org.objectweb.asm.MethodWriter.visitMaxs(Unknown Source) ~[asm-all-5.2.jar:5.2]


        at org.objectweb.asm.tree.MethodNode.accept(Unknown Source) ~[asm-all-5.2.jar:5.2]


        at org.objectweb.asm.tree.MethodNode.accept(Unknown Source) ~[asm-all-5.2.jar:5.2]


        at org.objectweb.asm.tree.ClassNode.accept(Unknown Source) ~[asm-all-5.2.jar:5.2]


        at c4.comforts.asm.SleepTransformer.transform(SleepTransformer.java:104) ~[SleepTransformer.class:?]


        at c4.comforts.asm.SleepTransformer.transformPlayerSleep(SleepTransformer.java:67) ~[SleepTransformer.class:?]


        at c4.comforts.asm.SleepTransformer$$Lambda$25.0000000012C62A60.apply(Unknown Source) ~[?:?]


        at c4.comforts.asm.SleepTransformer.transform(SleepTransformer.java:52) ~[SleepTransformer.class:?]


        at net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerWrapper.transform(ASMTransformerWrapper.java:256) ~[forge-1.12.2-14.23.5.2815.jar:?]


        at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279) ~[launchwrapper-1.12.jar:?]


        at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176) ~[launchwrapper-1.12.jar:?]


        at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:934) ~[?:1.8.0_202]


        at java.lang.ClassLoader.loadClass(ClassLoader.java:879) ~[?:1.8.0_202]


        at java.lang.ClassLoader.loadClass(ClassLoader.java:862) ~[?:1.8.0_202]


        at net.minecraft.client.main.Main.main(SourceFile:38) ~[Main.class:?]


        ... 6 more
崩溃了。。
作者: D_Nacht    时间: 2019-3-28 17:22
我觉得我的电脑还能抢救一下,如果效果这么显著的话
作者: D_Nacht    时间: 2019-3-28 17:58
D_Nacht 发表于 2019-3-28 17:22
我觉得我的电脑还能抢救一下,如果效果这么显著的话

刚刚安装上,亲测渣机有救了
作者: liach    时间: 2019-3-28 20:35
似乎ibm jre有个问题,就是崩溃的时候好像有点不对……我试过hotspot会直接出hs_err_pid文件,然后openj9直接黑屏卡死
作者: 1a2s3d4f1    时间: 2019-3-29 21:42
本帖最后由 1a2s3d4f1 于 2019-3-30 22:03 编辑
liach 发表于 2019-3-28 20:35
似乎ibm jre有个问题,就是崩溃的时候好像有点不对……我试过hotspot会直接出hs_err_pid文件,然后openj9直 ...

ibm jre有些崩溃jvm会出现转储文件(类似hs_err_pid)就像这样:




作者: aiaiioi    时间: 2019-4-1 00:21
在centos下给官方服务端用也大有改善,感谢
作者: Env_TM    时间: 2019-4-1 16:19
我下来用了一下,内存占用从百分之二三十降到了十左右,帧数稳定在六十左右,好强啊。
作者: Herobrine429    时间: 2019-4-8 20:40
管用啊!
作者: 1a2s3d4f1    时间: 2019-4-12 12:25
本帖最后由 1a2s3d4f1 于 2019-5-4 11:57 编辑
youyoudeminger 发表于 2019-3-3 17:07
由于源站使用的是Github下载源,而Github使用的是aws云储存,国内经常无法下载或者下载很慢,于是我做了一 ...

javafx实际只要一小部分,我的有多余文件,现在去掉了
链接:https://pan.baidu.com/s/1o9y8QohqiNvC7BThULmQgg
提取码:0fsy


作者: Isabella_lee    时间: 2019-4-14 11:33
试试,谢谢大佬
作者: ☆娜娜★    时间: 2019-4-15 09:31
牛逼 收藏 起来
作者: Miu🤔    时间: 2019-4-17 01:53
你把xms改1024看看,然后发现占用就不高了
作者: ☆娜娜★    时间: 2019-4-17 11:44
谢谢大佬 分享
作者: 麦兜国丰    时间: 2019-4-17 18:52
大佬,我这个用的话会一直卡在等待游戏启动9/20这里,有点救吗。。
作者: point_dada    时间: 2019-4-17 19:55
牛皮嗷 接下来就是我的渣机时间了
作者: 1913530127    时间: 2019-4-23 00:55
すごいね、本当にありがとう!
作者: QWH25    时间: 2019-4-23 01:13
服务端使用会部分插件报错,客户端使用在内存占用提升时会使用大量CPU资源回收内存
作者: wanezhizhu    时间: 2019-4-23 11:25
牛逼牛逼,果然是,内存大幅减少啊
作者: 十sw    时间: 2019-4-24 20:12
感觉很厉害的样子
作者: w3118313636    时间: 2019-4-25 18:54
好东西,谢谢楼主,支持一下!
作者: 1042102543    时间: 2019-4-27 09:51
这么神奇吗,虽然看不大懂
作者: 娄烦    时间: 2019-4-27 15:08
真棒,我说我的1.12.2的服务器为什么内存带不动,我是8G的内存,感谢楼主!
作者: supefengn    时间: 2019-4-30 09:17
亲测openj9,1.14spigot可用
作者: zjjxs    时间: 2019-4-30 09:27
试试看。。应该 还能用在MC以外的地方
作者: 961155933    时间: 2019-4-30 10:44
可以很好很实用
作者: 822633945    时间: 2019-5-9 21:57
神乎其技,不服不行!
作者: qaz1357077767    时间: 2019-5-10 00:05
提示: 作者被禁止或删除 内容自动屏蔽
作者: 20413464aa    时间: 2019-5-10 14:23
好厉害,一下就解决了渣机的问题
作者: 英豪以后    时间: 2019-5-12 19:48
QQ浏览器的下载速度3kb/s慢的和什么一样...伸手求一下度盘链...
作者: 1a2s3d4f1    时间: 2019-5-12 20:51
本帖最后由 1a2s3d4f1 于 2019-6-12 20:53 编辑
英豪以后 发表于 2019-5-12 19:48
QQ浏览器的下载速度3kb/s慢的和什么一样...伸手求一下度盘链...

链接:https://pan.baidu.com/s/1o9y8QohqiNvC7BThULmQgg 提取码:0fsy
反正百度也没好快,国内部分地区是无法在官方下载

作者: 英豪以后    时间: 2019-5-12 20:56
1a2s3d4f1 发表于 2019-5-12 20:51
链接:https://pan.baidu.com/s/1o9y8QohqiNvC7BThULmQgg 提取码:0fsy
反正百度也没好快 ...

啊啊啊感激不尽
作者: 小鸟依韵    时间: 2019-5-16 21:08
学到了,可以整一下,我的笔记本也许有救了
作者: asd1543255944    时间: 2019-5-17 02:03
解决卡顿   渣机福利
作者: Ka_hin    时间: 2019-5-17 13:05
我家i3 内存4G  winxp可能没救了
作者: Mxllong    时间: 2019-5-21 21:22
好东西哎..
作者: pexpect    时间: 2019-5-23 22:49
gan xie lou zhu fen xiang
作者: 3259433197    时间: 2019-5-25 18:33
网站可以打开,但是文件没法下载了

批注 2019-05-25 183245.png (51.5 KB, 下载次数: 1)

批注 2019-05-25 183245.png

作者: 1650961198    时间: 2019-5-26 13:11
MultiMc有问题啊
作者: 泪雨痕    时间: 2019-5-26 13:25
膜拜大佬nb
作者: ExpiodlngTNT    时间: 2019-5-29 09:11
我仅仅是GTX750TI,FPS应该没什么大变化..