本帖最后由 bailiyixi 于 2019-11-11 22:16 编辑
第一次以为是异步创世神的锅,删掉之后问题依旧存在:https://timings.aikar.co/?id=b14 ... c10f0a2993f#timings
第二次暂时怀疑是ProtocolLib的锅,但是这插件不能删啊:https://timings.aikar.co/?id=820 ... 8b985c9f4ee#timings
tps优化很好一直维持在20,但固定每隔30分钟tps就会丢失18-24%,持续大概两秒左右,如能解决,金粒不是问题。
非autosave问题,已经关闭该功能。
跟某个世界也没关系,卸载掉timings报告中占用较高的世界后下次会换另一个世界占用过高。
第一次以为是异步创世神的锅,删掉之后问题依旧存在:https://timings.aikar.co/?id=b14 ... c10f0a2993f#timings
第二次暂时怀疑是ProtocolLib的锅,但是这插件不能删啊:https://timings.aikar.co/?id=820 ... 8b985c9f4ee#timings
tps优化很好一直维持在20,但固定每隔30分钟tps就会丢失18-24%,持续大概两秒左右,如能解决,金粒不是问题。
非autosave问题,已经关闭该功能。
跟某个世界也没关系,卸载掉timings报告中占用较高的世界后下次会换另一个世界占用过高。
本帖最后由 a1294790523 于 2019-11-11 14:19 编辑
看了下你第二个Timings中的几个卡顿小波峰
基本可以确定罪魁祸首是com.comphenix.protocol.metrics.Metrics
也就是ProtocolLib的统计访问网络导致的问题(后面看源码的注释说收集数据是同步进行,网络连接传递是异步进行)
但是这与你的第一个的情况相违背....
但是我看了看源码:https://github.com/dmulloy2/Prot ... s/Metrics.java#L143
完全一致的时间段,所以先把统计和更新提示关了看看吧:
https://www.spigotmc.org/resources/protocollib.1997/
看了下你第二个Timings中的几个卡顿小波峰
基本可以确定罪魁祸首是com.comphenix.protocol.metrics.Metrics
也就是ProtocolLib的统计访问网络导致的问题(后面看源码的注释说收集数据是同步进行,网络连接传递是异步进行)
但是这与你的第一个的情况相违背....
但是我看了看源码:https://github.com/dmulloy2/Prot ... s/Metrics.java#L143
/**
* Starts the Scheduler which submits our data every 30 minutes.
*/
完全一致的时间段,所以先把统计和更新提示关了看看吧:
https://www.spigotmc.org/resources/protocollib.1997/
auto updater.notify: false #Inform any player with the permission protocol.info when a new version of ProtocolLib is out.
auto updater.download: false #Automatically download and install the newest version of ProtocolLib. The installation will take effect when the server restarts.
auto updater.delay: 43200 #The number of seconds between each check for a new update.
auto updater.last: 0 #This simply records the last time (in seconds since 01.01.1970) an update check was performed. Set it to 0 to force a new update check.
metrics: false#If TRUE, ProtocolLib will publish anonymous usage data to mcstats.org. Set it to FALSE to opt-out.
background compiler: true #If TRUE, ProtocolLib will try and improve performance by replacing reflection with compiled code on-the-fly.
ignore version check: None #Force ProtocolLib to start for a specified Minecraft version, even if it is incompatible.