
无随机刻
阻止方块和流体执行randomTick()及even tick()
阻止方块和流体进行随机刻或刻更新
随机刻
游戏中大多数方块都会执行随机刻,这部分本身已经经过优化。然而,方块数量越多,对服务器的压力就越大。即使是楼梯,也会出于某种神秘原因执行 randomTick()。
阻止 randomTick() 是一个相对安全的选项。你只是阻止了一些机制的运行,比如铜块的氧化、竹子的生长。至少在原版中,我还没有发现任何方块在被禁止后会导致游戏崩溃。我随机选择了游戏中50%的方块并禁止了它们的随机刻,没有出现任何问题。
以下是一些来自性能分析器的数据: 版本:Minecraft 1.20.1, Forge 4.30.0。 模组:NoRandomTicks 和 WorldEdit 方块:3800个竹子,5800个金合欢楼梯,4200个白桦树叶
原版:
[08] | | | | | | | | tickBlocks(40401/201) - 64.88%/5.94%
[09] | | | | | | | | | randomTick(53667/267) - 72.67%/4.32%
[10] | | | | | | | | | | #getChunkCacheMiss 4309/21
[10] | | | | | | | | | | #getChunk 97830/486
[10] | | | | | | | | | | unspecified(53667/267) - 82.14%/3.55%
[10] | | | | | | | | | | queueCheckLight(4755/24) - 8.67%/0.37%
[10] | | | | | | | | | | updateSkyLightSources(4755/24) - 8.45%/0.37%
[10] | | | | | | | | | | no_random_tick_check_blocks(6428/32) - 0.74%/0.03%
列入黑名单后:
[08] | | | | | | | | tickBlocks(40401/201) - 40.26%/1.50%
[09] | | | | | | | | | unspecified(40401/201) - 75.91%/1.14%
[09] | | | | | | | | | randomTick(53064/264) - 24.09%/0.36%
[10] | | | | | | | | | | #getChunkCacheMiss 43/0
[10] | | | | | | | | | | #getChunk 882/4
[10] | | | | | | | | | | unspecified(53064/264) - 92.69%/0.34%
[10] | | | | | | | | | | no_random_tick_check_blocks(5231/26) - 7.31%/0.03%
请考虑 ±1% 的误差
| 原版 | 模组 | 差异 |
|---|---|---|
| tickBlocks(40401/201) - 64.88%/5.94% | tickBlocks(40401/201) - 40.26%/1.50% | +4.44% |
| randomTick(53667/267) - 72.67%/4.32% | randomTick(53064/264) - 24.09%/0.36% | +3.96% |
| no_random_tick_check_blocks(6428/32) - 0.74%/0.03% | no_random_tick_check_blocks(5231/26) - 7.31%/0.03% | 无变化 |
刻更新
这个领域充满了惊喜。有些方块可能完全不受影响,而另一些则可能停止工作,或者只有部分功能会消失。例如:minecraft:fire,如果你禁止它进行刻更新,唯一会发生的事情是它不会破坏方块(例如,如果放在木头上)并且会熄灭。所以,基本上它的行为就像在地狱岩上一样。
熔炉则完全不受影响。所以,除非你了解方块的工作原理,或者准备好经历一个漫长的试错过程,我建议避免使用此功能。
流体
自版本 0.3 (1.21.1) 或 0.4 (1.20.1) 起,你可以阻止流体进行刻更新和随机刻更新。使用此选项时请务必小心。没有刻更新的流体只会像液体方块一样永远保持原样,但它们仍会与世界和相邻方块互动。原版只有两种液体:水和熔岩,所以我的测试比较有限。只有熔岩有随机刻方法,其作用只是点燃周围的东西。你可以通过游戏规则切换该行为,因此阻止随机刻可能只对来自其他模组的液体有用。另请记住,流体至少有两种类型:流动的和静止的。
调试
自版本 0.3 (1.21.1) 或 0.4 (1.20.1) 起,我添加了一个选项,可以在加载和重新加载配置时显示哪些内容被阻止以及哪些操作失败。
正则表达式
自版本 0.4 起
@pigporker (curseforge) 建议添加正则表达式支持,所以我现在加了。正则表达式与逐方块数组协同工作,在配置加载/重新加载时,它们会被合并到一个黑名单中。你可以编写一个超大的模式,或者将它们分成一个由较小模式组成的数组,这取决于你。正则表达式非常有用,但不太用户友好,因此错误不受配置中 DEBUG 选项的影响。它们始终处于开启状态。我努力让错误信息变得有用且详细,以帮助你调试。例如,一个错误的正则表达式模式会提示你问题所在:
[02:12:20] [modloading-worker-0/WARN] [NoRandomticksMod/]: Rejected invalid regex pattern '^[minecraft:.*': Unclosed character class near index 13
^[minecraft:.*
^
使用方法
在我看来,这个模组可能在以下方面对你有帮助:
- 如果你处于资源非常紧张的情况下,可以挤出一些性能。请记住,这是为服务器准备的;这个模组对服务器的帮助远大于对客户端的帮助。
- 在保留方块或流体的同时,阻止某些机制的发生。
- 调试
如果你想查看性能对比,请参阅该模组 GitHub 页面上的 readme.md。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。