调试分析器
Minecraft提供了一个调试分析器(Debug Profiler),可用于查找耗时的代码。特别考虑TickEvents和Ticking TileEntities,这样的东西对于想要找到时延来源的模组作者和服务器的主人非常有用。
使用调试分析器
调试分析器非常易于使用。它需要两个命令: /debug start 启动分析过程,以及 /debug stop 结束。重点是收集数据的时间越多,结果就越好。建议至少让它收集一分钟的数据。
注意: 当然,您只能分析实际到达的代码路径。您要分析的实体和TileEntities必须存在于世界中以显示在结果中。 停止调试器后,它将创建一个新文件,它可以在运行目录的debug子目录中找到。文件名将使用日期和时间格式为profile-results-yyyy-mm-dd_hh.mi.ss.txt
读取性能分析结果
在顶部,它首先告诉你它运行了多长时间(以毫秒为单位)以及在那段时间内运行了多少ticks。
在此之下,您将找到类似于以下的信息:
[00] levels - 96.70%/96.70%
[01] | World Name - 99.76%/96.47%
[02] | | tick - 99.31%/95.81%
[03] | | | entities - 47.72%/45.72%
[04] | | | | regular - 98.32%/44.95%
[04] | | | | blockEntities - 0.90%/0.41%
[05] | | | | | unspecified - 64.26%/0.26%
[05] | | | | | minecraft:furnace - 33.35%/0.14%
[05] | | | | | minecraft:chest - 2.39%/0.01%
这是对每个部分的含义的一个简要解释
[02] | tick | 99.31% | 95.81% |
该部分的深度 | 该部分的名称 | 它占上一级时间的百分比。对于第0层,它是总tick时间的百分比,而对于第1层,它是0层所用时间的百分比。 | 第二个百分比是从整个tick时间中花了多少时间。 |
分析你自己的代码
调试分析器具有对Entity和TileEntity的基本支持。如果您想要分析其他内容,您可能需要手动创建您的部分,如下所示:
Profiler#startSection(yourSectionName : String);
//The code you want to profile
Profiler#endSection();
你可以从一个实例World、MinecraftServer或Minecraft实例那里得到Profiler。现在,您只需要在文件中搜索要分析的部分的名称。