
Alternate Current
一种高效且非位置性的红石粉实现
Alternate Current 是一种高效且非位置性的红石粉实现。其主要目标是减少红石粉造成的卡顿,通过优化能量计算以及减少形状更新和方块更新的数量来实现。这些改动的副作用是,红石粉网络的方块更新顺序变得可预测且直观,而不再是依赖位置且混乱的。
性能
使用 Alternate Current 后,红石粉对 MSPT 的贡献最多可降低 30 倍,同时保持高度的原版一致性。其代码修改量很少,因此侵入性极小,可以轻松作为原版红石粉的直接替代品。
查看 GitHub 页面 以了解 Alternate Current 改进的详细说明。
为什么红石粉如此卡顿?
红石粉卡顿主要有两个原因:不必要的更新和不必要的计算,这两者都是由红石粉递归更新这一事实造成的。一条红石线在最终稳定到最终值之前,可能会更新其能量等级六次以上,每次都进行昂贵的计算并发出大量形状更新和方块更新。除此之外,许多形状更新和方块更新完全是冗余的。
Alternate Current 如何解决这个问题?
Alternate Current 通过在更新能量等级之前先计算整个网络的能量来解决这些问题。每条红石线只会检查一次来自非红石线组件的能量,以及两次来自其他红石线的能量。网络内的能量源会被识别出来,能量从那里开始传播。这使得计算更高效,更新顺序也更直观。只有在达到最终能量等级时才会发出形状更新和方块更新,并且每条红石线都不会发出冗余更新。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。