性能調整
警告
这些文档是为 SpongeAPI 7 编写的,可能已经过时。 如果你觉得你可以帮助更新它们,请提交一个 PR!
Sponge 提供多種效能優化選項,協助你架設在負載重的情況下也能順暢運作的伺服器。
備註
雖然我們嘗試提升所有伺服器的效能,但是提升的程度取決於你的設定。調整完記得測試看看,來確保你的伺服器在效能最佳的狀態。
實體活動範圍
该选项将会影响玩家周围实体加载的行为。降低该数值将导致只有靠近玩家的实体才会加载;升高该数值则会让离玩家较远的实体也得以加载。降低该数值可提升服务器性能,尤其是在有大量实体和玩家的场景下。若需要禁止某种实体的活动,可直接将其设定为 0
。
小訣竅
当然,你也可以针对某个 特定生物 设定其活动范围。你还大可以选择将 auto-populate
设定为 true
,这样 Sponge 就会帮你自动设定所有生物的活动范围,惟需注意,我们建议你在自动设定完成后关闭此选项(即重新设定为 false
)。若有新的生物种类,只需重复此步骤即可。
entity-activation-range {
# If enabled, newly discovered entities will be added to this config with a default value.
auto-populate=false
# Default activation ranges used for all entities unless overridden.
defaults {
ambient=32
aquatic=32
creature=32
misc=16
monster=32
}
}
非同步亮度計算
這個設定將會讓亮度檢查在獨立的執行序執行以改善效能。
optimizations {
# Runs lighting updates async.
async-lighting {
# If enabled, runs lighting updates async.
enabled=true
# The amount of threads to dedicate for async lighting updates. (Default: 2)
num-threads=2
}
}
快取可馴服動物的主人
這個設定將會快取可馴服實體的主人 UUID 以減少 data watcher 查詢的時間。
optimizations {
# Caches tameable entities owners to avoid constant lookups against data watchers. If mods cause issue, disable.
cache-tameable-owners=true
}
預先合併掉落物
启用后,新生成的掉落物将会尽可能合并在一起,藉由此避免在短时间内刷新大量实体,以及此后合并掉落物引发的大量计算。
optimizations {
# If enabled, block item drops are pre-processed to avoid
# having to spawn extra entities that will be merged post spawning.
# Usually, Sponge is smart enough to determine when to attempt an item pre-merge
# and when not to, however, in certain cases, some mods rely on items not being
# pre-merged and actually spawned, in which case, the items will flow right through
# without being merged.
drops-pre-merge=true
}
Panda 紅石
一個替代的紅石更新演算法,將會減少紅石造成的方塊更新。
optimizations {
# If enabled, uses Panda4494's Redstone implementation which improves performance.
# See https://bugs.mojang.com/browse/MC-11193 for more information.
# Note: This optimization has a few issues which is explained in the bug report. We are not responsible for any issues this may cause.
panda-redstone=false
}
調整自動存檔間格
原版 Minecraft 預設每 900 ticks (45 秒)儲存所有區塊。如果你想提高或降低間格,可以改變伺服器的 global.conf
檔案:
world {
# The auto-save tick interval used when saving global player data.
# Set to 0 to disable. (Default: 900) Note: 20 ticks is equivalent to 1 second.
auto-player-save-interval=900
# The auto-save tick interval used to save all loaded chunks in a world.
# Set to 0 to disable. (Default: 900) Note: 20 ticks is equivalent to 1 second.
auto-save-interval=900
}
时间间隔越低,意味着保存频率越快,因此服务器的CPU负载和硬盘占用也会随之上升,但频繁的备份对服务器断电后的回档有帮助;与之相对的是,时间间隔越高,服务器的负载也会随之降低,但当服务器出现问题导致存档丢失后,进度损失有可能会十分巨大。
Realtime
啟用這個將會提升當 TPS 低落時的玩家體驗,它不會改善效能。一些特定的實體、方塊實體以及世界時間的更新將會使用真實時間取代以 tick 為基準。
modules {
# Use real (wall) time instead of ticks as much as possible
realtime=false
}
举例:幼年动物通常需要 20 分钟成年。当服务器的 TPS 低时,每个动物获得的刷新机会会因此变少,使得成年的时间变相加长。启用此选项后,它们的一部分逻辑将会基于现实世界的时间来刷新。破坏方块的动作也能从中受益——此选项会让“反复破坏方块”的现象消失。
拒絕區塊請求
警告
这是一个旨在改善性能的实验性选项,我们建议你不要在 Mod 服中启用此选项,同时建议你在使用此功能但遇到 TileEntity 加载问题时优先禁用此选项。
world {
# If enabled, any request for a chunk not currently loaded will be denied (exceptions apply for things like world gen and player movement).
# Note: As this is an experimental setting for performance gain, if you encounter any issues then we recommend disabling it.
deny-chunk-requests=false
}
启用此选项后,任何试图加载当前未加载区块并执行各种操作的行为都会被拒绝。只有玩家操作及某些世界生成器允许触发区块加载。