1.12.2 Forge 端利用模组优化

帧数

EntityCulling

这个模组通过将无法看到的实体取消渲染、不渲染一定范围外实体阴影等方式,提高帧数。仅需要安装在客户端。
图中的玻璃实为石头,方便展示换为玻璃。
上方标识的数字是这个实体每帧的耗时,是 LagGoggles 模组显示的。


Particle Culling

这个模组通过将无法看到的粒子取消渲染以提高帧数,只需要在客户端安装。
图中的玻璃实为石头,方便展示换为玻璃。
1.12 以上使用 Cull Particles

内存

FoamFix

通过处理掉多余的模型、优化数据结构来减少内存占用,在模组多的情况下更为明显,在服务端效果较客户端不明显,但仍然有效果。
下图在无任何其它模组的情况下使用 spark 进行内存简单快照对比。
本模组有可能造成帧延迟突然过高,具体原因尚不清楚,也无法在本地复现,需要详细信息。

启动时间

Surge

在模型、注册项较多(基本可以等价于有大型模组)的情况下效果明显。服务端或者客户端都可以装,装在哪里优化哪里,不会有额外效果。

  • 快速前缀检查 - 清理 Forge 的 ID 前缀检查,减少创建和注册游戏注册表新项目需要的时间。
  • 动画 JSON 模型检查 - 清理 Forge 的自定义动画模型加载器,大幅提高模型加载时间。
  • 禁用调试声音信息 - 关闭缺失声音和丢失字幕的调试代码,这将改善声音加载时间。
  • 显示启动时间 。
  • 预定义颜色混合结果替代原版的查找配方。

运行性能

Performant

优化实体 AI,但与 CustomNPCs 有冲突。
下图是大概 100 只牛的测试情况

原版 Tick 持续时间:
image

模组 Tick 持续时间:
image


Phosphor

改进原版的光照算法,提高载入区块(光照计算部分)时间以及光照更新速度,在添加维度的模组中效果更加明显。
在 32 视距原版情况下测试效果不明显,Tick 时间变化为 5.1->4.6,但是变化率非常可观。
下图是32 视距进入世界无操作开始加载到停止加载中的光照计算时间所占百分比。

前:
image

后:

加载时间对比图,引用自 MCBBS

image


AI Improvements

优化实体 AI,测试 50 只左右的牛,结果如下:
前:平均 Tick 时间 12.0,后:平均 Tick 时间 11.0
效果不明显,不过此模组还有针对其他生物优化的部分


FastFurnaceFastWorkbench

通过对配方缓存,大幅提升合成、烧炼结果的运算速度一倍,科技服中效果更为明显,支持多个模组。
工作台无法给出直观测试,提升效果相似:



Clumps

替换经验球实体,使经验球的合并范围更大,动画更简单来减少经验球对 Tick 时间的占用以及帧数影响,大量经验球效果明显,下面是 30 个附魔瓶的经验产生的经验球占用对比:


可见,经验球的数量更少,Tick 占用也更小,同理 FPS 占用也更小。

分析工具

LagGoggles

可以用来分析 FPS 的每帧占用(不会分析方块实体,有些遗憾)。
也可以用来分析方块、实体、事件的 TPS 的占用情况,如下图。分析 TPS 需要服务端、客户端都装 。


Caliper

可以用于分析模组占用启动时间、CraftTweaker 脚本载入时间、注册表使用情况、事件监听器、材质占用情况、无效繁殖及配方等等。

image

2 Likes

lhl

1 Like