@Cnzw 因XF不支持上标注释(tooltip)省略了所有上标注释。 优化了部分文案和格式。 前言 这篇教程的意义? 目前站内的100%关于配置文件的优化教程,大多都是凭借前人经验与个人感觉,而实际的优化效果可能欠佳,不但优化效果差,还会严重影响玩家体验。而本篇教程就是为了在配置文件中找出最有效的配置项,以及最佳优化效果时的数值,并结合形成整个配置文件。你的测试数据怎么让我们信服? 我们每次测试都会记录下测试数据,然后公布在腾讯文档 上(以后可能会发布在pastebin上),每一次测试都可以寻找到spark链接和当时的TPS/Chunks/Entities/Tiles,不可能出现造假的情况,同时我们会尽量减小测试的误差。测试平台是? Windows Server 2016 / Intel Xeon E5 2689 2 Cores / 6GB 服务器进程的内存分配为4000M 启动参数为 java -jar -Xmx4000M -Xms4000M server-1618.jar 服务器版本在测试时会有说明,大部分为1.12/1.13,也有1.13/1.14内容 服务器种子为114514(防止地图建筑等对 测试的影响) 其他参数如未说明,均为默认参数 数据采样使用Spark ,仅一次使用Timings为什么不用Timings?你是不是歧视它不好用? 对,就是不好用 ①由于核心为Paper,Timings的数据收集至少需要3分钟,这给测试带来了许多不便 ②Timings在对照条件下根本就没!法!用!随随便便生成的Timings报告都有400%的tick,肯定是不符实际的,我怎么知道它是正确的还是错误的呢 当然,极少数情况我们也可能会选择Timings我服务器是1.7.10/1.13+的,看你的这篇教程有用吗? 对于1.7.10,您可以大胆参考,不需要有任何担心 对于1.13+,测试内的Chunks/Entities/Tiles是不会变的,变的只是TPS和优化效果,而优化效果看的是被测事物本身,比如我要测服务器内100区块和200区块的占用情况如何,优化效果的多少在1.12和1.13+是接近的,即使单个区块的占用变了,优化效果也不会变化多少。并且我们也对1.13+的内容进行了测试,让数据更加准确。其他 在鸽(zuo)了在鸽(zuo)了,具体进度请查看腾讯文档,本教程比腾讯文档晚更新 结论的表格中的“综合提升”有一定参考价值,在实际生产环境中的提升效果会有一定折扣(除非服务器没有插件占用),‘针对提升’是针对某些单一方面的(看针对提升的效果时,请注意这个配置项测的是什么),同时针对提升一般反映的是这项配置的最大优化能力,请勿把针对提升当做此配置的真实优化水平! 由于某些原因,我不可能会去多次测试取平均值,所以测试结果会有一定误差(但是误差会在可接受范围内)Server.properties 适用服务端:所有1. View-distance (Test ID:2-7) (服务器允许的最大视野距离,单位:区块数,默认=10,低于9的数值还会减少刷怪量) 测试内容: ①玩家移动800格的服务器状况(有区块回收)[1.12] ①玩家在出生点时,不同数值时的服务器状况[1.15] 附加参数: ①在bukkit.yml/paper.yml内,并且将区块加载速度设置为1000000(实际测试中,由于网络问题,区块加载速度约50~85块/秒)[仅测试①需要] ②还需要设置spigot.yml内的view-distance,因为spigot.yml优先于server.properties[仅1.13-需要,后面的spigot.yml中view-distance默认为default,即根据server.properties] ①:View-distance数值 Thread.sleep(越大越好) TPS/Chunks/Entities/Tiles dotick tickentity 综合提升|针对提升 10 91.68% 19.98/1491/296/26 2.82% 2.26% ------ 8 92.55% 19.97/952/257/14 2.33% 2.25% 10.50%|17.58% 6 93.62% 19.97/913/265/11 1.87% 1.64% 23.31%|23.84% 4 94.72% 19.97/703/233/11 1.11% 1.34% 36.50%|36.78% 3 94.32% 19.95/611/116/8 1.25% 1.32% 31.70%|46.00% ②:View-distance数值 SleepForTick(越高越好) TPS/Chunks/Entities/Tiles/mspt tickentity ChunkProviderTick 综合提升 8 78.02% 20.00/529/111/16/7.8 9.23% 7.34% --- 6 83.38% 20.00/289/111/11/5.8 8.52% 3.10% 25.02% 4 87.76% 20.00/169/105/7/5.7 6.77% 1.48% 35.62% 3 86.04% 20.00/121/111/5/5.6 8.34% 1.40% 37.85% 12 79.93% 20.00/841/149/19/8.5 8.20% 8.33% -8.83% 16 76.24% 20.00/1369/252/28/10.6 8.88% 10.50% -21.99%测试时可能碰到了一个特性: 在1.13-的服务器内区块加载规则是加载玩家周围的[(2n+1)^2]个区块(n=view-distance数值),这个和一般对view-distance的解释是吻合的。但是在1.14的区块加载数变为了[(2n+3)^2],1.15变成了[(2n+5)]^2。 这显然和之前的机制不同,个人猜测外围多加载的区块可能是"缓冲区",跑过去才会接收到区块,但是不算新加载的区块,这种机制可能是用来降低TPS的波动。因此在1.14或更高版本的服务器中要格外注意这一部分额外加载的区块,你完全可以比1.12的推荐数值小1~2。 在view-distance=3~5时,优化效果最佳且玩家体验较好。 同时在测试的时候发现,当view-distance设置为2时,是可以看到3视距的,说明最低只能是3,再往低就没有意义了。
Bukkit.yml 适用服务端:Bukkit,CraftBukkit,Spigot,Mohist,Paper,Catserver等基于Bukkit的服务端1. ticks-per (Test ID:15-19|126-130)(多少tick执行一次事件,spawn的事件是生物的生成;autosave是世界保存,默认值animal-spawns[动物] =400 monster-spawns[怪物] =1 water-animal-spawns[水生动物/1.16+] =1 water-ambient-spawns[水下环境生物/1.15+] =1 ambient-spawns[环境生物/1.15+] =1 autosave=6000) 这项配置只测试ticks.per-monster-spawns,其他数值和monster-spawn大同小异,且刷新数量较少,不进行测试。autosave测试结果不精准,同样不测试 测试内容: ①不同ticks-per.monster-spawns数值时,玩家在出生点以16的视野距离挂机60秒后的服务器状况[1.12] ②不同ticks-per.autosave数值时,世界保存的占用[1.12] ①不同ticks-per.water/amibient-spawns数值时,玩家在出生点以8的视野距离挂机60秒后的服务器状况[1.15] 附加参数: ①禁用区块回收 ②View-distance=16 ③不限制bukkit.yml内的spawn-limits(此配置项会限制玩家周围的最大刷怪量,因此测试时需取消限制) ①:Monster-spawns数值 Thread.sleep(越高越好) TPS/Chunks/Entities/Tiles dotick tickentity 针对提升 1 26.85% 15.90/1089/5110/11 5.10% 61.91% --- 3 73.92% 19.59/1223/1785/11 3.32% 17.98% 23.70% 5 76.73% 20.00/1089/1248/11 4.45% 14.34% 25.61% 10 83.38% 19.87/1089/605/11 3.69% 8.69% 28.99% 30 88.15% 19.90/1089/247/11 3.61% 4.86% 30.71% ②:ticks-per.autosave数值 Thread.sleep(越高越好) TPS/Chunks/Entities/Tiles 世界保存占用 针对提升 6000(default) 92.04% 19.97/1089/66/13 0.69% --- 12000 92.62% 19.96/1089/63/13 0.46% 33.33% 24000 93.02% 19.96/1089/63/13 0.47% 31.99% 2400 92.97% 19.85/1089/65/13 0.62% 10.15% 600 93.74% 19.98/1089/66/13 0.55% 20.29% ③:water/ambient-spawns数值 SleepForTick(越高越好) TPS/Chunks/Entities/Tiles/mspt tickentity 针对提升 1 0.00% 11.71/529/2588/16/82.6 77.56% --- 3 51.29% 20.00/529/1103/16/30.8 35.39% 20.90% 5 62.93% 20.00/529/537/16/22.8 25.60% 24.13% 10 79.16% 20.00/529/365/16/14.3 12.83% 27.56% 30 89.63% 20.00/529/125/16/7.7 3.09% 30.22%结论 在限制spawn-limits.monsters后,服务器的实体数量在300~500左右,不会更高。monster-spawns=1时服务器异常卡顿,继续测试可能会崩溃,在设置为3以上后,TPS回升很多,但是entities依然可怕。 ticks-per.autosave在表格中看似有一点优化效果,但这一点点(1玩家+1300chunks+200实体情况下降低了0.2%的tick,自己服务器可类比)的意义太小了,还可能导致服务器在意外崩服时回档时间更长。 建议 如果您不对bukkit.yml--spawn-limits或spigot.yml--mob-spawn-range进行修改,ticks-per内的生物生成配置在玩家不加载区块时,修改它可能没什么影响。如果玩家有跑图的行为,服务器内的刷怪量可能是可怕的(1000区块有1500实体+),因此推荐water-animal-spawns[1.16+],water-ambient-spawns[1.15+]。ambient-spawns[1.15+]至少设置为40/80,如果觉得这三种生物还是刷得多,还可以直接设置为与animal-spawns相同数值。monster-spawns推荐直接修改为10~200的数值(根据服务器情况,低于5的数值几乎没有意义)。animal-spawns可选择修改,默认值足够高了,设置为默认值的2~3倍也可。 ticks-per.autosave推荐最多设置为12000(10分钟),超过这个数值会让服务器异常关闭时回档严重,而且测试的时候也没有见到提升这个数值能显著减少自动保存占用。
2. spawn-limits (Test ID:20-24|144-148)(每个玩家在所在世界中能刷出多少怪物,默认:monsters:70 animals:15[1.12-] /10[1.13+] water-animals:5[1.12-] /10[1.13+] ambient:15 water-ambient[1.16+] =20) 猜想①:与视野距离有关 猜想②:与玩家数有关 猜想③:与加载的区块量有关 ①和②很好测试,①是错的,②是正确的, 猜想③在测试过程中发现会受到被卸载的区块中实体的干扰,而且这一部分实体无法被kill,也不会计入服务器实体的数据中。因此在测试中,禁止区块回收并使用循环命令/tp @p[score_move_min=1] ~ ~ ~-1 将玩家平移2000格后,会到起点并kill所有实体,并重复循环命令移动2000格。 结果: 【图片丢失】 因此,在跑图的时候,服务器内的实体满足这个公式(这个似乎是bukkit官方给的,海螺也说是这个公式,只不过图中的256[16*16]应该为289[17*17]) 【图片丢失】 结论(spawn-limits的解释): ①当已被卸载的区块加载时,满足 生物≤spawn-limits内对应数值*(当前世界区块数/289) ②当已被卸载的区块加载时,满足 总实体≤spawn-limits内各数值之和*(当前世界区块数/289)此外我们还发现了一个离谱的现象 [仅1.13或更低版本] : 只要所在区块被kill @e或killall了,短期情况(也许是几小时,也许....是永久)下实体不可能恢复原样,随后经过排除,我们发现是spigot.yml内的mob-spawn-range影响的,默认值为4,导致刷怪量大大减少 所以,你的服务器刷怪少也许是因为mob-spawn-range导致的
测试内容: ①:参数不同时玩家在出生点的时候服务器状况[1.12] ②:参数不同时玩家在出生点的时候服务器状况[1.15] 附加参数: ①View-distance=16 ②需要在spigot.yml内设置mob-spawn-range为等同于视野距离的数值,否则会影响此参数的效果导致不刷怪 ③测试时spawn-limits的默认值为正常的10倍,模拟10人时的情况 ①:该参数的倍率 Thread.sleep(越高越好) TPS/Chunks/Entities/Tiles dotick tickentity 针对提升 10 37.97% 19.93/1378/812/52 4.35% 55.29% --- 20 3.61% 19.01/1378/1635/52 4.76% 86.81% -57.00% 40 0.65% 11.82/1378/2935/52 3.34% 93.48% -69.07% 5 66.63% 20.00/1378/475/52 3.34% 28.04% 50.71% 2 80.32% 20.00/1378/188/52 4.20% 13.71% 75.21% ②:该参数的倍率 SleepForTick(越高越好) TPS/Chunks/Entities/Tiles dotick tickentity 针对提升 10 18.55% 19.83/497/1073/16/37.1 73.26% 60.09% --- 20 0.00% 14.22/304/2037/14/59.1 92.97% 81.17% -70.16% 40 0.00% 6.54/309/4014/14/131.9 94.07% 84.70% -81.90% 5 56.21% 20.00/399/533/16/20.8 40.31% 31.75% 47.17% 2 79.27% 20.00/396/221/15/10.2 17.27% 12.05% 79.95%当服务器为10人左右时,将此配置项设置为原来的一半(即35/7/3/7)最多可以降低50%的实体数量,降低为原来的1/5可能会引起玩家的愤怒(平均每个人周围只有19实体.这会导致玩家周围基本不刷怪),如果你的服务器内玩家超勇,并且你用了较好的CPU,设置为原来的1.5~2倍,然后提升monster-spawns的数值,也不会影响多少TPS。 因此,推荐您将各数值设置为原来的30%至原来的75%。[推荐1.14+的版本降低的更多,经测试,1.15.2中500区块平均会产生一千多个实体]
3. chunk-gc (Test ID:33-36) chunk-gc.period-in-ticks (多少tick回收一次区块,默认值=600,即30秒。修改此项同时也要修改paper.yml内的delay-chunk-unloads-by,或者禁用其中一项) chunk-gc.load-threshold[1.13-] (两次区块回收之间,需要加载多少区块才能进行下一次区块回收,默认=0) 这两项数值不会影响很多性能 这是测试chunk-gc.period-in-ticks在不同情况下的性能占用: (耗时1h) ①:在出生点时,不加载额外区块,区块回收占用[1.12] ②:匀速移动200格后,区块回收占用[1.12] chunk-gc.period-in-ticks Thread.sleep processChunkGC 600-① 92.33% 0 600-② 49.10% 0 1-① 90.85% 0.80% 1-② 60.28% 1.05%默认值时,区块回收占用几乎为0(实际情况是根本找不到区块回收这一项,应该是小于0.01%,采样时间是60s,不可能没记录到),设置为1时,玩家禁止时候区块回收占用略高(0.80%,移动时虽然区块回收占用有1.05%,但是加快了服务器内区块回收,及时减少了区块回收的数量,能挽回区块回收带来的占用亏损,甚至还赚了一些。 但是我们不建议您设置为1,如此频繁的区块回收在服务器玩家过多,区块数量很多时(如大于5000),区块回收占用就很可怕了,因此建议您设置的数值不要低于100。
Spigot.yml 适用服务端:Spigot Paper Mohist Catserver等1. Mob-spawn-range (Test ID:25-32)(以玩家为中心的半径多少区块内可以刷怪,默认1.12-=4,1.13+默认值=8)⚠️数值设置大于9,也不会在9区块外刷怪,因为原版刷怪机制为:生物离玩家最多128格,否则刷出的怪物将被删除 ⚠️数值低于8时,服务器内刷怪量低于或远低于正常刷怪量[仅1.13或更低版本] 在1.13或更低版本的服务器上,较低的数值会导致刷怪量急剧减少,这是因为bukkit.yml内的spawn-limits限制了平均一个区块内能生成多少生物,而mob-spawn-range会阻止较远的区块生成怪物,两项配置的共同作用使得刷怪数量远低于正常水平 测试内容: ①修改mob-spawn-range,bukkit内spawn-limits为原来的3倍时候,服务器内生物刷新的状况[1.12] 附加参数: ①view-distance=16 ① mob-spawn-range数值 Thread.sleep(越高越好) TPS/Chunks/Entities/Tiles dotick tickentity 针对提升 4 90.92% 19.97/1089/25/9 5.04% 1.64% --- 5 90.63% 20.00/1089/39/9 4.87% 1.51% 5.56% 6 90.19% 19.97/1089/59/9 4.59% 2.33% -25.05% 8 89.94% 19.96/1089/93/9 4.69% 2.41% -29.23% 10 90.28% 19.97/1089/99/9 4.53% 2.02% -15.10% 3 91.02% 19.93/1089/17/9 4.68% 1.35% 8.34% 2 90.69% 19.88/1089/8/9 5.03% 1.15% 16.20% 1 90.03% 19.99/1089/3/9 5.82% 1.37% 13.13%在1.14或高版本的服务器上,mob-spawn-range的作用类似bukkit.yml中的生物生成配置,测试时设置为3的刷怪速度只有设置为8刷怪速度的10%左右,不过不会影响刷怪量 不过为了配合ticks-per,推荐将这项数值修改为3~4 在1.14以下版本的服务器上 mob-spawn-range会使刷怪量大幅减少 将mob-spawn-range设置为9以上,每名玩家大约会额外降低至少1%的服务器线程睡眠占比 将mob-spawn-range设置为1,还是能见到刷怪,但已经很少了 如果您真切需要这0.5%的占用(换算成事件耗时的话最多为5%,这5%是真实的优化),或者您的服务器内玩家很多,此项配置可改为3(但是较低的mob-spawn-range数值会导致刷怪塔的性能不能被完全榨干) 如果您想让您的服务器回归bukkit/原版刷怪机制,修改到8或10也是一个不错选择,而且带来的服务器负担也不是很多(0.8%,换算为事件耗时约为8%)
2. entity-activation-range (Test ID:37-42)(以玩家为中心,生物距离玩家多少格内才被激活/每秒被激活的数量限制,默认值在下方,已折叠) entity-activation-range: #1.15新增,设置对村民的飞行怪物的激活范围 villagers: 32 flying-monsters: 32 #1.15新增,设置工作的村民的激活范围 villagers-work-immunity-after: 100 villagers-work-immunity-for: 20 villagers-active-for-panic: true #1.14新增,设置对袭击怪物的激活范围 raiders: 32 #设置为动物/怪物/掉落物/水流的激活范围 animals: 32 monsters: 32 misc: 16 water: 16 #1.14新增,和不活跃村民有关,具体意义不明 tick-inactive-villagers: true #1.14新增,设置对生物被激活的速度限制 wake-up-inactive: animals-max-per-tick: 4 animals-every: 1200 animals-for: 100 monsters-max-per-tick: 8 monsters-every: 400 monsters-for: 100 villagers-max-per-tick: 4 villagers-every: 600 villagers-for: 100 flying-monsters-max-per-tick: 8 flying-monsters-every: 200 flying-monsters-for: 100
测试内容: ①不同entity-activation-range.monsters数值时,玩家绕500只分散的僵尸移动时,服务器占用[1.12] 附加参数: ①:禁用区块回收 ②:将paper.yml内的despawn-ranges.soft设置为128(否则服务器内的怪物会被缓慢删除,影响测试效果) ③:view-distance=16 ①entity-activation-range.monsters数值 Thread.sleep(越高越好) TPS/Chunks/Entities/Tiles tickentity EntityZombie 针对提升 32 82.96% 19.99/1513/501/21 2.66% 7.02% --- 28 84.95% 19.96/1513/501/21 2.67% 5.40% 17.38% 24 85.40% 19.96/1513/502/21 2.66% 4.95% 21.90% 20 87.70% 19.96/1513/501/21 2.73% 3.82% 36.70% 16 88.34% 19.98/1514/500/21 2.44% 3.09% 44.78% 12 89.50% 19.97/1514/499/21 3.39% 2.62% 50.53%当entity-activation-range.monsters为默认值一半的时候,怪物的耗时降低了一半多,但是16这个数值对于玩家是几乎无法游玩的(看到的怪物大多都没有激活,玩家没有游戏体验),设置到24的时候,怪物的占用也有30%的降幅。 而animals/villagers等其他配置的优化效果和monsters是一样的,可以根据表格内的优化效果修改,且动物对于玩家的影响不大,改为12也没什么关系。 村民被激活时的寻路AI占用了大量的tick。 flying-monsters貌似仅仅是指幻翼。 misc是指掉落物,如果你的服务器内有很多生成掉落物的机器(如:用岩浆块杀死怪物的刷怪塔,地毯机,0t机器),可以适当降低此项,但 不能设置为1或更低 ,否则会出现实体无法捡起等一系列奇妙的bug water这一项此项还是不动最好。 wake-up-inactive的修改意义不大,大型服务器可能还要增加这些数值 因此,如果您的服务器是养老生存服,且大型机械非常多,玩家又喜欢养动物,可以设置为viilagers:16 flying-monsters:18~24 monsters: 18~24 animals: 8~12 misc:2~4 water:16 wake-up-inactive设置为原来的50% 如果您的服务器是RPG服,这几项只能微调。 注意:过低的monsters数值会导致刷怪塔效率降低,甚至不工作!(经过测试,monsters的数值是指怪物与玩家的水平距离,与竖直距离无关)
3. max-tick-time (Test ID:48-52)(在服务器的两个tick之间,实体/方块实体最多允许被计算多长时间,单位毫秒,默认tile:50,entity:50) 默认数值已经足够了,如果你的服务器实体/方块实体占用极高,降低这两项数值可能会有显著的提升。如果实体/方块实体占用不高如果设置太低,实体/方块实体会跳过计算,可能会导致玩家体验下降/漏斗分类机堵塞之类的bug。 测试内容: ①使用Spigot 核心(因为paper禁用此项),在不同max-tick-time.entity数值的情况下,1400只实体的占用,以及玩家怪物计算被跳过的情况[1.12] (由于tile很难达到50ms/tick,因此不测试max-tick-time.tile,且max-tick-time.entity的规律适用于tile) 附加参数: ①View-distance=16 ②/gamerule doMobSpawning false(禁止生物自然生成) ③使用timings v1进行数据收集,而不是spark(spark对于低tps时的采样效果不好) max-tick-time-entity数值 Full Server Tick TPS/Chunks/Entities/Tiles tickentity 实体计算被跳过状况 针对提升 50 109.38% 16.92/1127/1437/25 100.75% 中等 --- 40 90.71% 19.95/1123/1435/25 80.81% 中等 最高20% 30 70.97% 19.88/1123/1431/25 60.83% 中等 最高40% 15 38.83% 19.92/1123/1430/25 30.65% 严重 最高70% 5 18.17% 19.92/1123/1411/25 10.72% 极为严重 最高90%max-tick-time.tile同理 针对提升中的“最高”指的是当服务器内实体/方块实体达到100% tick占用时(即50ms 达到了默认值的阈值),但是大多数服务器都无法达到这个数值,所以您需要使用Timings进行采样(输入/timings on 三分钟后输入/timings paste),然后在输出结果的网页内内找到"tickentity"一项的Pct Tick 如果max-tick-time没有修改过,您又需要优化,您可以将max-tick-time.entity修改为[tickentity最高时占用(%)*50-5],大约会带来10%的实体占用下降 如果您修改过max-tick-time,且tickentity占用(%)*50≈max-tick-time.entity,就不建议再改了 max-tick-time.tile与max-tick-time.entity同理,只是tile的占用=每一种tile占用的总和,需要自己计算 注意事项: ①此配置项在paper上不生效(已经在paper.yml找过了,没有启用这个配置项的选项,在paper上的数据请看腾讯文档内Test ID:43-47) ,这好像是Paper官方自己禁用的PaperSpigot does not offers "max-tick-time" PaperSpigot 不支持max-tick-time ②降低此项可能会给服务器带来不稳定,特别是RPG服务器,如数据不同步等,但是它带来的优化效果真的很可观There’s a reason PaperSpigot doesn’t offer it: You shouldn’t use it! That system is fundamentally broken in implementation and can cause inconsistencies with your server. 这就是PaperSpigot不支持它的原因,你就不应该用它!它从源头上破坏了服务器的正常运转,导致了服务器的不同步 翻译自https://aikar.co/2015/10/08/spig ... -use-max-tick-time/ 注:aikar是paperspigot的维护者之一
4. ticks-per (Test ID:53-58)(漏斗多少tick传输一次,多少tick检查一次,默认hopper-transfer: 8 hopper-check:1) hopper-amount (漏斗一次传输几个,默认值为1,此项不影响性能,但是会影响效率) 测试内容: ①100个漏斗传输物品时,不同数值下(这三个数值的1倍,2倍,3倍,4倍,5倍),漏斗的占用[1.12] 其他参数: ①/gamerule doMobSpawning false(禁止生物生成,因为测试的时候动用了summon命令生成怪物来生成掉落物) ②使用spigot核心 ①: (8,1,1代表hopper-transfer: 8 hopper-check: 1 hopper-amount:1)各数值倍率 Thread.sleep(越高越好) TileEntityHopper 针对提升 1x(8,1,1)-传输时 95.68% 1.07% --- 2x(16,2,2)-传输时 95.23% 0.96% 10.29% 3x(24,3,3)-传输时 95.68% 0.85% 20.57% 4x(32,4,4)-传输时 96.19% 0.67% 37.39% 5x(40,5,5)-传输时 96.45% 0.64% 40.19% 1x(8,1,1)-不传输时 96.37% 0.48% ---不修改数值时,大约每个漏斗会占用0.01%(0.005ms)的服务器tick,但是多个漏斗叠加的占用还是挺多的(一般用到漏斗的大型机器有1000+个,差不多就要占用10%tick了)。按照站内一些教程给的推荐数值(3x;24,3,3), 大概只能降低20%的漏斗tick,属实没劲,即使这个数值设置到全站给过的最高数值(5x;40,5,5),也只能降低40%占用,这是因为Tile与Entity不同,Entity由于受到entity-activation-range的限制,不工作的实体占用几乎为0。而Tile时刻都有一定计算,在不工作的情况(见表格第六行)也有一定的占用。 同时,修改了ticks-per和hopper-amount后,物品每次传输间隔时间和数量都修改了,许多和漏斗有关的机器都可能出现Bug,如抽.奖机,分拣机。hopper-check大于1可能还会导致物品复制的小bug,为了减少或防止这种不同步,hopper-transfer数值最好要是hopper-check的倍数。 因此,对于生存服,如果服务器内的漏斗很多,那还是建议设置为(16,4,2 hopper-check也占用了一定性能,所以多提升了一些),如果漏斗占用不高,只建议更改hopper-check 对于RPG服,且又需要漏斗的,可以考虑直接改为(1,4,32),这样漏斗传输速度很快,传输时间变短,占用会下降很多。 对于Mod服,修改为5x~10x即可。
5. max-tnt-per-tick (Test ID:122-125)(每个tick最多计算多少个tnt,默认=100) 测试内容: ①不同数值时5000余个TNT爆炸时,服务器的状况以及TNT的占用[1.12] ②不同数值时2000余个TNT爆炸时,服务器的状况以及TNT的占用[1.15] 附加参数: ①view-distance: 16