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 次比一次,選快的方式
每個階段定期試跑平行與單執行緒兩種方式。插件監聽大量事件時平行反而要一直暫停,這時核心會自動退回單執行緒,不會比原本慢。
文件
從這裡開始
文件分成開始使用、效能、原理和相容性四部分,換核心前建議依序看過。