19.9200 人,相距 256 格同场景 Leaf 13.0,Folia 7.2
19.7300 人,相距 256 格同场景 Folia 3.9
19.537 个插件同时载入,200 人同一套插件,棋盘格关闭时 14.4
运作方式
把世界切成棋盘格,四种颜色轮流运算
Folia 的区域在玩家靠近时会合并,最後只剩一条线程负责主城。棋盘格不看玩家远近,人再多也拆得开。
- 1世界切成 64 格见方的格子,涂成四种颜色。
- 2同色的格子至少相隔 64 格,彼此碰不到,可以同时运算。
- 3四种颜色依序跑完就是一个 tick,插件仍然在主线程上。
1234
7 条工作线程分担同一种颜色
为什么选雨之核心
多核心的性能,单线程的兼容性
大型服务器通常要在性能和插件之间二选一。雨之核心把世界运算拆开,插件仍然留在主线程。
每个 tick 花多久
200 人挤在主城,每 tick 平均耗时
RainCore12 ms
Leaf28 ms
Folia52 ms
红线是 50 ms 上限,超过就会掉 TPS。Folia 是单一区域的值。
兼容性
插件不用改
插件永远在主线程上跑。工作线程碰到插件或共用数据时会全部暂停,等主线程做完再继续。
版本
1.21.11 到 26.3
每个 Minecraft 版本一个 jar,同版本的世界直接沿用。
1.21.1126.1.226.226.3
自动调整
每 256 次比一次,选快的方式
每个阶段定期试跑并行与单线程两种方式。插件监听大量事件时并行反而要一直暂停,这时核心会自动退回单线程,不会比原本慢。
文档
从这里开始
文档分成开始使用、性能、原理和兼容性四部分,换核心前建议依序看过。