diff --git a/docs/maintenance/optimize/jvm-optimization.md b/docs/maintenance/optimize/jvm-optimization.md index 84472b5c9a..e1e5ba9943 100644 --- a/docs/maintenance/optimize/jvm-optimization.md +++ b/docs/maintenance/optimize/jvm-optimization.md @@ -41,7 +41,7 @@ java -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+UseFMA 如果你使用Java 21 以上,你可以将`-XX:-ZProactive`换`-XX:+ZGenerational`,Java 22以上必须切换 -### 以下是格外选项 +### 以下是额外选项 更激进的内联,在 Graal 中通过 `-Dgraal.BaseTargetSpending=160` (默认为 120)和 OpenJDK 中的其他一些标志。具有较大缓存的 CPU 可能会从中受益。 @@ -117,9 +117,9 @@ java -Xlog:gc+init -XX:+UseTransparentHugePages -Xmx1g -version -XX:+UseTransparentHugePages -XX:LargePageSizeInBytes=2m -XX:+UseHugeTLBFS ``` -::note +::note -在某些服务器上,开启大页后,会延长JVM的启动时间,时间从十秒到十分钟不等 +在某些服务器上,开启大页后,会延长 JVM 的启动时间,时间从十秒到十分钟不等 ::: diff --git a/docs/maintenance/optimize/optimized-plugin.md b/docs/maintenance/optimize/optimized-plugin.md index 80d7a2b4eb..7a372841fd 100644 --- a/docs/maintenance/optimize/optimized-plugin.md +++ b/docs/maintenance/optimize/optimized-plugin.md @@ -27,13 +27,15 @@ sidebar_position: 6 :::info -有很多优化是核心自带的,使用插件只是利用核心的 API,效率上是比不上核心的. 如 AI,村民,爆炸,区块卸载等... +有很多优化是核心自带的,使用插件只是利用核心的 API,效率上是比不上核心的。如 AI,村民,爆炸,区块卸载等... + +大佬们思考一下吧,让插件删掉核心已经决定刷出来的怪物性能好还是让核心决定不刷怪性能好? ::: ### 对于 AI 有影响的插件 -使用 Pufferfish Fork(如Purpur/Leaf等)降低远处生物的 AI 比插件利用 API 更加有效和符合游戏逻辑, +使用 Pufferfish Fork(如Purpur / Leaf等)降低远处生物的 AI 比插件利用 API 更加有效和符合游戏逻辑, 因此,停止使用类似插件,如: @@ -49,42 +51,13 @@ sidebar_position: 6 ### 村民优化插件 -村民非常吃性能,如果只需要保留公用交易性质可以使用 [Shopkeepers](https://www.spigotmc.org/resources/shopkeepers.80756/) 插件创建无 AI 的村民,如果你想保留村民和 AI 只需要在 purpur.yml 中搜索 lobotomize 启用即可,另外在 config/paper-world-defaults.yml 中有一部分可以优化的内容和村民相关,但这可能会导致村民看起来有一点呆. +村民非常吃性能,如果只需要保留公用交易性质可以使用 [Shopkeepers](https://www.spigotmc.org/resources/shopkeepers.80756/) 插件创建无 AI 的村民, -
- 我应该怎么调整? +如果你想保留村民和 AI 只需要在 `purpur.yml` 中搜索 lobotomize 启用即可, -(其实你也可以用笨蛋脚本) +另外在 `config/paper-world-defaults.yml` 中有一部分可以优化的内容和村民相关,但这可能会导致村民看起来有一点呆。 -`paper`配置 - -```yaml -tick-rates: - behavior: - villager: - validatenearbypoi: 120 - sensor: - villager: - secondarypoisensor: 240 -``` - -`purpur`配置 -```yaml -world-settings: - default: - mobs: - zombie: - aggressive-towards-villager-when-lagging: false - villager: - lobotomize: - enabled: true - search-radius: - acquire-poi: 16 - nearest-bed-sensor: 16 -``` - - -
+[如何优化](./parameter-adjustment/performance-optimization.md/#村民相关) 因此,停止使用类似插件,如: @@ -92,47 +65,10 @@ world-settings: ### 地面清理插件 -地面上的物品很少会导致性能问题,而且物品往往会自行消失,如果你的服务器掉落物特别多, +地面上的物品很少会导致性能问题,而且物品往往会自行消失,如果你的服务器掉落物特别多,请调整以下两个参数: -你可以将 `/config/paper-world-default.yml` 中的 alt-item-despawn-rate 调整为 true. - -并将你需要快速消失的物品加在后面,数字的单位为刻,即下面这个例子里代表世界里的"cobblestone(原石)" - -和"cobbled_deepslate(深层板岩)"会在600tick(30s)后自动消失: - -
- 我应该怎么调整? - -```yaml - spawning: - all-chunks-are-slime-chunks: false - alt-item-despawn-rate: - enabled: true - items: - cobblestone: 600 - cobbled_deepslate: 600 - netherrack: 600 - rotten_flesh: 900 - ender_pearl: 900 - leather: 900 - bone: 1200 - bone_meal: 1200 - cactus: 900 - egg: 900 - feather: 900 - gunpowder: 1200 - arrow: 900 - blaze_rod: 1200 - cod: 1200 - salmon: 1200 - string: 1200 - ink_sac: 900 - slime_ball: 1200 - phantom_membrane: 900 -``` -除此之外,你还可以提升 `spigot.yml` 中的 `merge-radius` 从而使得更远的物品也能堆叠. - -
+[点这里查看正确方法 #alt-item-despawn-rate](./parameter-adjustment/performance-optimization.md/#alt-item-despawn-rate) +[点这里查看正确方法 #merge-radius](./parameter-adjustment/performance-optimization.md/#merge-radius) 因此,停止使用类似插件,如: @@ -140,22 +76,9 @@ world-settings: ### 生物清理插件 -使用插件删除生物是笨蛋中的笨蛋才会做的事,生物如果达到服务器设定的上限则会停止生成. 而被清除后,服务器必须重新生成生物,这个过程也是非常费性能的. +使用插件删除生物是笨蛋中的笨蛋才会做的事,生物如果达到服务器设定的上限则会停止生成. 而被清除后,服务器必须重新生成生物,这个过程也是非常费性能的。 -如果你不需要那么多怪物,直接调整/config/paper-world-default.yml即可,例子如下,请自行查看 [paper 文档](https://docs.papermc.io/paper/reference/configuration) 知道你在干什么: - -
- 我应该怎么调整? - -```yaml - spawn-limits: - ambient: 1 - axolotls: 5 - creature: 5 - monster: 20 - underground_water_creature: 4 - water_ambient: 4 - water_creature: 4 +如果你不需要那么多怪物,直接调整参数即可 [点这里查看正确方法](./parameter-adjustment/performance-optimization.md/#spawn-limit) ```
@@ -165,7 +88,7 @@ world-settings: ### 实体堆叠插件 -除非玩家乐意养殖非常非常多生物,否则对生物进行堆叠仍然会使服务器浪费性能在刷新更多的生物上,否则请不要安装堆叠插件. +除非玩家乐意养殖非常非常多生物,否则对生物进行堆叠仍然会使服务器浪费性能在刷新更多的生物上,否则请不要安装堆叠插件。 因此,停止使用类似插件,如: @@ -173,65 +96,65 @@ world-settings: ### 爆炸优化插件 -paper 酱为你在 /config/paper-world-default.yml 中准备了爆炸优化. +Paper 酱为你在 `/config/paper-world-default.yml` 中准备了爆炸优化。 -
- 我应该怎么调整? - -```yaml -optimize-explosions: true -``` -
+[点这里查看正确方法](./parameter-adjustment/performance-optimization.md/#optimize-explosions) ### 区块卸载插件 服务器会自己卸载插件,与其使用插件一遍遍检查区块是否需要卸载不如让服务器自行卸载, -如果你需要更快卸载请调整 /config/paper-world-default.yml +如果你需要更快卸载请 [点这里查看正确方法](./parameter-adjustment/performance-optimization.md/#delay-chunk-unloads-by) -
- 我应该怎么调整? +## 其他应该避免使用的插件 -```yaml -delay-chunk-unloads-by: 8s -#区块将在 8s 后卸载 -keep-spawn-loaded: false -#停止出生点区块常加载 -``` - -
- -### 多合一的"优化插件" +### 多合一插件 :::warning -大佬们,多合一插件大多数都是把几个开源的功能拼接到一起就说多合一说不定还付费了. 不要花钱在付费"优化"插件上 +大佬们,多合一插件大多数都是把几个开源的功能拼接到一起就说多合一说不定还付费了。这并不划算,且本身很容易臃肿。 ::: #### Lagassist -跑路付费多合一"优化插件",不要使用. 下面是吐槽(包含一定程度的恶意,问就是因为被骗过一百块) +跑路付费多合一"优化插件",不要使用。下面是吐槽(包含一定程度的恶意,问就是因为被骗过一百块)
为什么不要用这个插件 -1. ChunkAnalyser - 简单的搜索世界的红石,漏斗,实体之类,有很多平替插件如 [insights](https://modrinth.com/plugin/insights)/ [entitydetection](https://www.spigotmc.org/resources/entitydetection-tile-entity-support.20588/) +1. ChunkAnalyser - 简单的搜索世界的红石,漏斗,实体之类,有很多平替插件如 [Insights](https://modrinth.com/plugin/insights)/ [Entitydetection](https://www.spigotmc.org/resources/entitydetection-tile-entity-support.20588/); -2. LagMonitor,LagMap,Benchmark - 很鸡肋的性能检测(远不如spark) +2. LagMonitor,LagMap,Benchmark - 很鸡肋的性能检测(不如 [Spark](./performance-analysis.md/#spark) ); -3. RedstoneCuller - 直接破坏红石机器,平替插件 [AntiRedstoneClock](https://hangar.papermc.io/OneLiteFeather/AntiRedstoneClock-Remastered?fbclid=IwAR0sVVd50oTgHd9UVJJ7C8dTyL3PiVIBaJtpT6NyMy_D2T2Ho0umzrqtaDw) +3. RedstoneCuller - 直接破坏红石机器,平替插件 [AntiRedstoneClock](https://hangar.papermc.io/OneLiteFeather/AntiRedstoneClock-Remastered?fbclid=IwAR0sVVd50oTgHd9UVJJ7C8dTyL3PiVIBaJtpT6NyMy_D2T2Ho0umzrqtaDw); -4. ChunkHoppers - 有专门的区块漏斗插件,体验远好于此插件 +4. ChunkHoppers - 有专门的区块漏斗插件如 [UpgradeableHoppers](https://www.spigotmc.org/resources/upgradeable-hoppers-%E2%AD%95-fast-hopper-plugin-link-containers-%E2%9C%85-item-transfer-suction-chunk-1-20-sup.69201/),体验远好于此插件; -5. ChunkLimiter - 平替插件 [Farmcontrol](https://www.spigotmc.org/resources/farmcontrol-1-15-1-19.86923/)/ [mob-farm-manager](https://www.spigotmc.org/resources/mob-farm-manager-supports-1-7-10-up-to-1-20-hopper-support.15127/),甚至更多配置项 +5. ChunkLimiter - 平替插件 [Farmcontrol](https://www.spigotmc.org/resources/farmcontrol-1-15-1-19.86923/) / [Mob-Farm-Manager](https://www.spigotmc.org/resources/mob-farm-manager-supports-1-7-10-up-to-1-20-hopper-support.15127/),甚至更多配置项; -6. Dynamic View Distance - 平替插件 [view-distance-tweaks](https://www.spigotmc.org/resources/view-distance-tweaks.75164/) +6. Dynamic View Distance - 平替插件 [View-distance-tweaks](https://www.spigotmc.org/resources/view-distance-tweaks.75164/); -总之每个所谓优化都是槽点,插件占用的性能多于"优化"的性能,请不要继续使用了. +总之每个所谓优化都是槽点,插件占用的性能多于"优化"的性能,请不要继续使用了。
+#### CMI / ESS + +所谓基础插件,旨在使用一个插件就可以代替数个甚至数十个插件的功能。 + +但是这样的插件往往功能多而不专,如 CMI 经济经常出 bug 且不支持跨服。 + +而 ESS 使用 yml 储存大量的玩家数据等高血压操作。 + +这些插件往往因为功能多导致有些代码没有被优化好。 + +### 过于古老的插件 + +除了 Vault 等前置插件以外,插件总是需要更新的,如果一个插件长期不更新, + +且并非服务器核心玩法插件,请考虑选择搜索类似功能插件。 + ## 有用的~~优化~~限制插件 ### FarmControl diff --git a/docs/maintenance/optimize/parameter-adjustment/performance-optimization.md b/docs/maintenance/optimize/parameter-adjustment/performance-optimization.md index a6e0d5c86f..7d728b6983 100644 --- a/docs/maintenance/optimize/parameter-adjustment/performance-optimization.md +++ b/docs/maintenance/optimize/parameter-adjustment/performance-optimization.md @@ -1,5 +1,7 @@ --- + title: 性能优化 + sidebar_position: 1 --- @@ -37,12 +39,13 @@ sidebar_position: 1 ```yaml simulate-distance: 8 -#模拟距离为 8 chunks ``` 如果你使用的默认 10 chunks 的模拟距离,这会非常影响性能,可以酌情减少, -`推荐值:3 - 8` +``` +推荐值:3 - 8 +``` ##### 自动调整 @@ -71,7 +74,9 @@ chunk-loading-basic: 此时大量跑图的玩家可能会觉得服务器有一些滞后,但是能够保证大多数玩家的游戏体验,这是值得的。 -`推荐值:20 - 40` +``` +推荐值:20 - 40 +``` #### prevent-moving-into-unloaded-chunks @@ -150,6 +155,7 @@ max-auto-save-chunks-per-tick: 24 在 `paper-world-defaults.yml` 中的参数,用于控制世界保存时最大保存的某种实体数量。 推荐值: + ```yaml chunks: entity-per-chunk-save-limit: @@ -183,17 +189,19 @@ chunks: #### treasure-maps.enabled -在 `paper-world-default.yml` +生成藏宝图的性能占用极高,如果要定位的结构位于未生成的区块中,服务器甚至可能会未响应。 + +只有在您预生成世界并设置原版世界边界的情况下,启用此功能才是安全的。 + +在 `paper-world-default.yml` 中的参数,决定服务器是否生成藏宝图。 ``` 推荐值: false ``` -生成藏宝图的性能占用极高,如果要定位的结构位于未生成的区块中,服务器甚至可能会未响应。只有在您预生成世界并设置原版世界边界的情况下,启用此功能才是安全的。 - #### treasure-maps.find-already-discovered -在 `paper-world-default.yml` +在 `paper-world-default.yml` 中的参数,控制服务器是否强制藏宝图在未探索的地方。 ``` 推荐值: @@ -201,20 +209,22 @@ chunks: villager-trade: true ``` -此项的默认值强制新藏宝图寻找未探索过的结构,这些结构通常位于尚未生成的区块中。将其设置为 true 可使地图指向之前发现过的结构。如果不将其更改为 true,在生成新的藏宝图时可能会遇到服务器未响应或崩溃的情况。 `villager-trade`影响村民交易的地图,而`loot-tables`影响任何生成战利品的容器,如宝箱等。 +由于这些未探索的结构通常位于尚未生成的区块中,这可能会滞后服务器。 + + `villager-trade` 影响村民交易的地图。 + +`loot-tables` 影响任何生成战利品的容器,如宝箱等。 #### dolphin.disable-treasure-searching -[purpur.yml] +在 `purpur.yml` 中的参数,控制海豚是否能够寻找藏宝图。 + +设置为 true 禁用搜索。 ``` 推荐值: true ``` -禁止海豚寻宝。 - - - ## 实体 默认情况下,实体的占用一般占服务器的 40% 左右,如果不控制实体,即使是市面上最好的 CPU ,服务器也会卡顿。 @@ -223,6 +233,8 @@ chunks: 用 spark 等性能分析插件查看,应该希望将全部实体 tick 保持在 30% 以下(有一定数量的玩家在线的情况)。 +#### spawn-limits + 在 `bukkit.yml` 和 `paper-world-default` 中都有一样的配置,但 paper 如果设置将覆盖 bukkit 的。 所以建议直接在 `paper-world-default` 中设置: @@ -261,6 +273,8 @@ spawn-limits: | axolotls | 3 | 4 | 5 | | ambient | 0 | 1 | 1 | +#### mob-spawn-range + 另外,在 `spigot.yml` 中有关于生物生成范围的设置: ```yaml @@ -273,13 +287,13 @@ mob-spawn-range: 8 推荐值: -| `spawn-limit` 值 | 对应 `mob-spawn-range`推荐值 | 实际生物量 | -| :--------------: | :--------------------------: | :----------: | -| 70 (默认) | 8(默认) | 100% (默认) | -| 56 | 6-7 | 90% | -| 42 | 5-6 | 78% | -| 28 | 4-5 | 65% | -| 14 | 3-4 | 48% | +| `spawn-limit` 值 | 对应 `mob-spawn-range`推荐值 | 实际生物量 | +| :--------------: | :--------------------------: | :---------: | +| 70 (默认) | 8(默认) | 100% (默认) | +| 56 | 6-7 | 90% | +| 42 | 5-6 | 78% | +| 28 | 4-5 | 65% | +| 14 | 3-4 | 48% | ### 实体刷新及消失 @@ -504,21 +518,25 @@ tick-inactive-villagers: true 禁用此功能将有助于提高性能,但在某些情况下会让远处的村民更蠢,此项还会降低刷铁机等的效率。 -`推荐值:false` +``` +推荐值:false +``` ##### zombie.aggressive-towards-villager-when-lagging -在 `purpur.yml` +在 `purpur.yml` 中控制僵尸是否在服务器卡顿时对村民的仇恨。 + +由于村民被僵尸跟踪时会触发非常复杂的寻路、铁傀儡召唤等行为。 + +大量村民被僵尸恐吓时会造成卡顿,当 TPS 低于`purpur.yml` 中设置的 `lagging-threshold` 值时,启用此项会阻止僵尸追赶村民。 ``` 推荐值: false ``` -当 TPS 低于`lagging-threshold`值 [purpur.yml] 时,启用此项会阻止僵尸追逐村民。 - ##### villager.lobotomize.enabled -在 `purpur.yml` +在 `purpur.yml` 中控制村民 AI 的配置。 ``` 推荐值: true @@ -530,7 +548,7 @@ tick-inactive-villagers: true ##### villager.search-radius -在 `purpur.yml` +在 `purpur.yml` 中控制村民寻路范围的配置。该项可以调整村民尝试搜索工作方块和床的半径。 ``` 推荐值: @@ -539,11 +557,11 @@ tick-inactive-villagers: true nearest-bed-sensor: 16 ``` -该项可以调整村民尝试搜索工作方块和床的半径。这大大提高了村民的性能,但会阻止他们探测到比设定值更远的工作方块或床。 +降低这个值会大大提高了村民的性能,但会阻止他们探测到比设定值更远的工作方块或床。 ##### tick-rates -在 `paper-world-default.yml` +在 `paper-world-default.yml` 中决定了触发 AI 行为间隔 ``` 推荐值: @@ -563,26 +581,28 @@ tick-inactive-villagers: true > 当 [Pufferfish's DAB](#dabenabled) 启用时,不建议修改该项任何默认值。 -这决定了触发AI行为和传感器的间隔。 `acquirepoi`是村民最频繁的行为, 因此它的间隔已经大大增加了。 如果村民有寻路问题,请减少此项。 +`acquirepoi`是村民最频繁的行为, 因此它的间隔已经大大增加了。 如果村民有寻路问题,请减少此项。 #### 寻路 ##### update-pathfinding-on-block-update -在 `paper-world-default.yml` +在 `paper-world-default.yml` 控制生物寻路。 ``` 推荐值: false ``` -禁用此项将减少寻路次数,从而提高性能。在某些情况下,这会导致生物看起来更加迟钝;它们只会每 5 个 tick(0.25 秒)被动更新一次路径。 +禁用此项将减少寻路次数,从而提高性能。在某些情况下,这会导致生物看起来更加迟钝; + +它们只会每 5 个 tick(0.25 秒)被动更新一次路径。 ### 掉落物及经验 #### alt-item-despawn-rate -在 `paper-world-default.yml` +在 `paper-world-default.yml` 中可以为每个单独的掉落物控制消失时间。 ``` 推荐值: @@ -617,11 +637,11 @@ tick-inactive-villagers: true scaffolding: 600 ``` -此项可以设置指定物品消失的时间(tick 为单位)。 建议用此项替代扫地姬或`merge-radius`来提高性能。 +此项可以设置指定物品消失的时间(tick 为单位), 建议用此项替代扫地姬或 `merge-radius` 来提高性能。 ##### merge-radius -在 spigot +在 `spigot.yml` 中设置同类物品和经验球合并堆叠的距离。 ``` 推荐值: @@ -630,7 +650,11 @@ tick-inactive-villagers: true exp: 4.0 ``` -此项设置同类物品和经验球合并堆叠的距离,可减少地面未拾取物数量。 设置得太高会导致物品合并时像瞬间传送。也会使得物品穿过方块,可能破坏一些刷怪塔。 此项不会判断物品是否穿过墙壁 (除非开启 Paper 中的`fix-items-merging-through-walls)。经验球仅会在生成时合并。建议使用`alt-item-despawn-rate`来优化掉落物数量。 +可减少地面未拾取物数量。 设置得太高会导致物品合并时像瞬间传送。也会使得物品穿过方块,可能破坏一些刷怪塔。 + +此项不会判断物品是否穿过墙壁 (除非开启 Paper 中的`fix-items-merging-through-walls)。` + +`经验球仅会在生成时合并。建议使用`alt-item-despawn-rate`来优化掉落物数量。 ### 弓箭 @@ -652,7 +676,7 @@ tick-inactive-villagers: true ### 盔甲架 -在 `paper-world-default.yml` +在 `paper-world-default.yml` 中控制是否将盔甲架加入 tick。 #### armor-stands.tick @@ -660,7 +684,9 @@ tick-inactive-villagers: true 推荐值: false ``` -在大部分情况下,将该项设置为`false`是安全的。如果您使用盔甲架或任何相关的插件时遇到了问题,请重新启用它。这将防止盔甲架被水推动或受到重力的影响。 +在大部分情况下,将该项设置为`false`是安全的。如果您使用盔甲架或任何相关的插件时遇到了问题,请重新启用它。 + +这将防止盔甲架被水推动或受到重力的影响。 #### armor-stands.do-collision-entity-lookups @@ -674,62 +700,70 @@ tick-inactive-villagers: true ### redstone-implementation -在 `paper-world-default.yml` +在 `paper-world-default.yml` 中控制红石系统使用的引擎。 ``` 推荐值: ALTERNATE_CURRENT ``` -将红石系统替换为优化版本,减少冗余更新,降低服务器必须计算的逻辑量。可能会对个别的红石机器产生影响,但其提升利大于弊。甚至还可以修复 Bukkit 造成的红石同步问题。 +将红石系统替换为优化版本,减少冗余更新,降低服务器必须计算的逻辑量。可能会对个别的红石机器产生影响, + +但其提升非常大,性能提升可能有 70%,利大于弊。甚至还可以修复 Bukkit 造成的红石同步问题。 `ALTERNATE_CURRENT`是基于 [Alternate Current](https://modrinth.com/mod/alternate-current)。 更多信息请阅读该页面。 ### hopper.disable-move-event -在 `paper-world-default.yml` +在 `paper-world-default.yml` 中控制漏斗的一个繁重的事件。 ``` 推荐值: false ``` -仅当有插件监听`InventoryMoveItemEvent`时才会触发该事件。 **如果您想使用侦听此事件的插件,请不要设置为 true,比如保护插件!** +仅当有插件监听`InventoryMoveItemEvent`时才会触发该事件。 + +**如果您想使用侦听此事件的插件,请不要设置为 true,比如保护插件!** #### hopper.ignore-occluding-blocks -在 `paper-world-default.yml` +在 `paper-world-default.yml` 中控制漏斗是否会忽略完整方块内的容器。 ``` 推荐值: true ``` -确定漏斗是否会忽略完整方块内的容器,例如沙子或沙砾中的漏斗矿车。启用该项可能会破坏一些红石装置。 +降低沙子或沙砾中的漏斗矿车之类的情况,启用该项可能会破坏一些红石装置。 ### optimize-explosions -在 `paper-world-default.yml` +在 `paper-world-default.yml` 中控制是否启用爆炸优化。 + +将此项设为`true`可以将原版爆炸算法替换成优化版本,略微牺牲非常小的爆炸伤害换取爆炸时的大量性能提升。 ``` 推荐值: true ``` -将此项设为`true`可以将原版爆炸算法替换成优化版本,但计算爆炸伤害时会略有不准确。 这通常不影响游戏体验。 +### tick-per -### hopper-transfer + ticks-per: + hopper-transfer: 8 + hopper-check: 1 -在 spigot +`hopper-transfer` 控制了漏斗多少 tick 传输一次物品; -``` -推荐值: 8 -``` +`hopper-check` 控制了漏斗一次运输多少物品。 -漏斗移动一个物品的频率(以 tick 为单位)。如果服务器上有大量漏斗,增加此值将有助于提高性能,但如果设置得太高,会破坏基于漏斗的红石计时器,甚至可能破坏物品分类装置。 +在漏斗特别多的服务器中,合理搭配`hopper-transfer` 和 `hopper-check` 可以降低漏斗占用。(但可能略微影响一些机器的行为,如分类机) -### hopper-check +另外,使用更高的 `hopper-check` 能够增加漏斗在单位时间的物品传输效率, -在 spigot +降低同样数量物品的漏斗使用时间,进一步降低漏斗占用。 -``` -推荐值: 8 -``` +| 漏斗速度 | 服务器占用 | hopper-transfer | hopper-check | +| -------- | ---------- | --------------- | ------------ | +| 50% | 中低 | 16 | 1 | +| 100% | 中高 | 8 | 1 | +| 100% | 低 | 16 | 2 | +| 200% | 中 | 8 | 2 | -漏斗检查上方的物品或容器的频率(以 tick 为单位)。如果服务器上有大量漏斗,增加此值将有助于提高性能,但如果设置得太高,会破坏基于漏斗的红石计时器,甚至可能破坏物品分类装置。 \ No newline at end of file diff --git a/docs/maintenance/optimize/performance-analysis.md b/docs/maintenance/optimize/performance-analysis.md index 8528d0f150..2817a6ff1c 100644 --- a/docs/maintenance/optimize/performance-analysis.md +++ b/docs/maintenance/optimize/performance-analysis.md @@ -9,7 +9,7 @@ sidebar_position: 5 ## Spark -Spark是一个Minecraft的性能分析器,支持广泛(Bukkit,BungeeCord,Velocity,Forge,Fabric等)。 +Spark是一个Minecraft的性能分析器,支持广泛(如 Bukkit,BungeeCord,Velocity,Forge,Fabric 等)。 :::info @@ -38,7 +38,11 @@ Spark是一个Minecraft的性能分析器,支持广泛(Bukkit,BungeeCord ### 使用方法 -首先将spark.jar文件插件放到服务端的 mods 或者 plugins 文件夹中.(如果服务端是Purpur Fork很可能你可以直接在/pl中查看到Spark,直接用就好)。 +插件服和 1.13 以上的 mod 服请下载插件版本并将 Spark.jar 文件插件放到服务端的 plugins 文件夹中。 + +1.12.2 和以下混合服优先使用 mod 版本,放入 mods 文件夹。 + +对于 Purpur Fork 服务器,默认自带 Spark,无需单独下载。 #### /spark profiler @@ -78,7 +82,7 @@ Timings是一个 Paper 自带的性能分析器,由于其监听每一个事件 但由于其不断不断启动和停止虚拟“秒表”,会对性能产生非常大的影响。因此无论服务器规模大小只需禁用计时即可实现 *10-30%* 的性能提升。 -可以通过在 `timings.enabled /config/paper-global.yml` 中设为 `false` 禁用。 +可以通过在 `/config/paper-global.yml` 中 `timings.enabled` 设为 `false` 禁用。 :::