本帖最后由 roj234 于 2020-11-21 18:54 编辑
重要:报告BUG一定要带上debug.log位置在logs文件夹,仅凭一个crash-report看不出什么!!!
告示:0.4.0正在制作中,这将是一个非常大的更新
0.4.0预告:
0.3.8: 修复了Optional注解失效的问题
修复了不使用native方法的NPE
0.3.6
修复了一些比较严重的BUG
DFA把double/long等八位当成四位计算导致栈空间不足
红石无法使用
增加了基于ChunkPrimer的schematic loader
新增指令/il we mem 支持/il we set的撤销和重做
新增/il we set 选定一个区域然后fill吧 |
0.3.5更新日志:
修复了一些不太严重的BUG
1. Nixim与Mixin冲突
门会消失什么的可能是这个原因
2. 修复AABB缓存不会自动清理导致内存溢出的BUG 3. 修复了Nixim不支持已有lambda方法的类的注入
4. 修复JSON解释器不能引号套引号
新增大量优化功能:
1. 替换方块实体的创建为DCA, 替代反射, 提高效率
2. 替换实体的创建为DCA, 替代反射, 提高效率
3. 让'World'中所有天天创建BlockPos的方法使用MutableBlockPos (注:可能有BUG)
警告:此功能会破坏原版红石行为:方向优先级不再由六个if决定,而是EnumFacing的顺序!
警告:此功能可能与TickDynamic冲突(默认开启!),如果崩溃中提到NoSuchMethodError:MutableBlockPos.xxxxx请关闭此功能!
4. 替换区块中的光照计算,提高效率 (高不了多少,强力安利Phosphor!)
5. 防止破坏方块过快时出现幽灵方块, 已不是WIP,可以正常使用
6. 吃掉了一个高版本MOD:Lootr,在mcmod有介绍,可以自己看
7. GUI里的滑块只有鼠标松开时才会应用更改 WIP,改好了要用鼠标再点击一下
8. 修复客户端连接服务器时的NPE: group (启动客户端连不上服务器?)
9. 删除反胃药水效果并使得地狱门里可以输入指令
 
10. 大幅加快切换世界时的速度 (快了很多很多!)
11. 可以不在日志中记录聊天,或者调节聊天栏的最大高度 (WIP)
12. 通过ID禁用特定方块实体 (/blockdata 里面有个叫id的string)
13. 删除烦人的洞穴音效 (好惊悚啊)
14. 自动爬楼梯 (头向上看就可以了)
15. 修改客户端连接服务器的网络超时 (对于网卡的同学)
16. 修改tick速度! 1-500都可以
17. 不允许二次登陆... 这个功能只要你的服务器有登陆插件就不用管它
原版服务器有的时候会被别人挤下去叫You have logged in another location现在是别人登陆不了
讲真,输入法默认都是登陆不是登录了...
|
因为我懒,所以不会删除改了名字的配置项,推荐你复制一份配置再删除,对着新的配置改
P.S. log里会输出debug参数的每个比特的意思
更多请看配置文件
0.3.0更新日志:
修复了大量各种BUG
替换了forge的mod加载系统,可能增加新的BUG!! 目前测试过在我的服务器里,没什么BUG
可以在服务端运行了
配置文件格式优化
新增大量非优化功能
比如RuntimeInvisible注解实现的物品, 方块, TileEntity自动注册系统
自己实现的又一个ASM: Preloader,在META-INF里放一个Preload.ini
(这个就必须基于修改forge的mod加载系统)
Nixim(仿Mixin)支持 替换/append 构造器,泛型签名的替换
增加了一个物品: 位置选择工具, 用途目前只能/il structure 以后会更多....
|
它总共优化了以下部分
1. 多人服务器优化, WorldClient中的实体列表替换为WeakHashSet,让你玩久了MC之后客户端的实体列表里不会有成千上万(占了200MB内存)个"别的玩家(EntityOtherPlayerMP)"
2. 内存优化, 清除LaunchClassloader中
1. 从来没调用过的packageManifests
2. 缓存的class的bytecode
(我的理解:都已defineClass了这些留着也没用不是吗)
Mixin中的一些比较占内存的东西
3. 换材质包优化, Forge因为某些原因,在换材质时会重复加载多次AT,这个mod在MC启动(LoadComplete阶段)后就会锁死所有的AT,不能修改
4. 替换ObjectIdentityMap为IntMap
(如果你有很多带meta的方块就关闭,否则可以节省内存)
5. 修复流体材质丢失
[size=13.0667px]6. 吃了树叶快速腐烂, 并修复了一个它的BUG
[size=13.0667px]7. 如果游戏没有声音会自动修复,如果还是没有可以在聊天框内输入 //reloadSoundMgr
[size=13.0667px] 两个斜杠!!
8. 根据TPS自动调节视距 (服务端)
[size=13.0667px]9. 客户端长时间不动作自动降低FPS (注:窗口最小化,失去焦点等都会触发!还有,不要在开着这个功能的时候进设置调帧率,否则)
[size=13.0667px]
[size=13.0667px]
10. 缓存getEntitiesInAABB()的结果
11. 替换forge的ASM加快加载速度
[size=13.0667px] (注意:这个会导致加载界面变成乱码!!! 因为我目前查不出的BUG)
12. 缓存mod注解加快加载速度
13. 减小log文件体积 (调节forge的日志级别到INFO,关闭STDOUT)
14. 通过替换合成Map加快熔炉合成判断速度
[size=13.0667px](WIP)[size=13.0667px]
[size=13.0667px]16. 指令:
/il
chunks
view 查看各世界加载的区块
clear 卸载玩家不在的区块和没有玩家的世界
gc 清理内存
structure <save/load> <文件名> 把用选择工具选择的区域保存到schematic文件里
we
fill 填充方块,和原版fill差不多,但是更快,最多支持16777215个方块 (注:主线程操作)
速度:一千三百万方块50秒,CPU50%, i3
test
info 获取系统信息
test 内存压力测试 (WIP)
上面两个都是给服主用的,测试一下你租的/买的服务器有没有参水
itemod <oredict> 取得所有这个矿词的物品

tps <tps> 改变服务端的TPS(要在配置里打开)

/il_client
gc 清理客户端内存
reloadTex 重载材质
dump_gl_info DEBUG使用,获取OpenGL支持数据
/itemdata [NBT] 查看或修改手上物品的NBT数据!!!
/playerdata <名字> [NBT],查看或修改玩家的NBT数据!!!
|
介绍:
1随着时间推移,越久越多,可以节省内存200M左右,这个意思不是说减少,而是“不增多”
2随着mod的增多而增多,但是不会节省太多,40-100MB
3节省的最多,如果你换了材质包的话,700MB,我也不知道为什么,反正就是有这么多
图:使用后的内存占用情况
一号功能修改的部分都是JVisualVM看出来的内存大户
但是像TE(热力)16MB的渲染器,IE(沉浸)76MB的渲染器以及JEI 40-80MB的筛选器之类的就没办法了
红色:JEI
紫色:热力
第2个是Forge的运行时notch转srg
第3个我也不知道是啥
其他功能:
怪物只能在完整方块上生成
[size=13.0667px]高级提示框
[size=13.0667px]提示背包物品改变
修改窗口标题
[size=13.0667px]为所有MOD中没有物品的方块创建物品 (比如,minecraft:portal)
[size=13.0667px]防止玩家以外的生物开矿车
[size=13.0667px]防止玩家退出游戏时(因为没关闭GUI)丢失物品
允许合成超过最大等级的附魔书
[size=13.0667px]
删除RepairCost标签 (过于昂贵)
|
在这里配置配置(config/ImprovementLibrary.json)
链接:
https://pan.baidu.com/s/1jVrKYmyiik5Egq74vf16QQ 提取码: 5ht3
此外,我对部分功能进行了测试
碰撞箱缓存
200ms, 600MB, 两千只羊, 开启其他优化 粒子效果2048 (注:默认16384)
不使用


使用


1000ms, 1600MB 七千只羊, 开启其他优化 粒子效果2048
不使用

使用

关闭所有优化

所以少量实体时会快,太多了反倒变慢了,是否开启自己斟酌
当然也可能是配置问题,我用的是谷歌的commons.cache
这是配置
expireAfterAccess(Config.aabbCache, TimeUnit.MILLISECONDS)
.initialCapacity(2000)
.maximumSize(1000000)
.softValues()
.concurrencyLevel(2)
减小log体积:
开启:100KB
不开启:600KB
让TileEntity/Entity使用DCA 存档加载时间 七千只羊+九千熔炉
开启:10s
不开启:11s
所以,不要想着优化可以多棒...
|
这个mod主要还是
当前置用的...
优化只是副功能, 所以这个版本
所有可能冲突的优化默认不开启 你可以试着开启,一般没事...
当然,可以看下Tweak.和Util.的功能,这些功能才是好地方
在服务端中写着Client功能不会激活同样,客户端写着Server的功能也不会激活
有BUG请在楼下回复
请在配置文件打开DEBUG里
安利:
这个mod没有使用蜗牛gradle,而是我原创的FMD编译,无需网络,增量编译,最快可以达到 50毫秒
链接:https://www.mcbbs.net/thread-1101060-1-1.html