• 论坛

导航

  • 主页
  • 样式指南
  • 入门
    • 概述
    • Mod的结构
    • Forge更新检查器
    • 依赖管理
    • 调试分析器
      • 使用调试分析器
      • 阅读分析结果
      • 分析你自己的代码
  • 概念
    • Sides
    • 资源
    • 注册表
    • Jar签名
    • 国际化和本地化
  • 方块
    • 概述
    • 介绍方块状态
    • 方块互动
  • 动画 API
    • 概述
    • 骨骼
    • 动画状态机
    • 使用API
  • TileEntity
    • 概述
    • 特殊渲染器
  • 物品
    • 主页
    • 战利品表
  • 模型
    • 模型概述
    • 模型文件
    • 方块状态
      • 方块状态JSON概述
      • Forge方块状态JSON
    • 绑定模型到方块和物品
    • 彩色纹理
    • 物品属性概述
    • 高级模型(未翻译)
      • 高级模型介绍
      • IModel
      • IModelState and IModelPart
      • IBakedModel
      • Extended Blockstates
      • Perspective
      • ItemOverrideList
      • ICustomModelLoader
  • 渲染
    • TileEntityItemStackRenderer
  • 事件
    • 基本用法
  • 网络
    • 主页
    • 概述
    • SimpleImpl
    • 实体
  • 数据储存
    • 能力系统
    • World Saved Data
    • 拓展实体属性
    • Config注解
  • 工具
    • 合成
    • 矿物词典
    • 权限API
  • 效果
    • 音效
  • 惯例
    • 版本命名
    • 文件位置
    • 加载阶段
  • 参与Forge开发
    • 入门
    • PR指南

调试分析器

Minecraft提供了调试分析器(Debug Profiler),可用于查找耗时的代码。 特别是像TileEntities和刷新TileEntities这样的东西,对于mod开发者和服务器服主找到耗时代码非常有用。

使用调试分析器

调试分析器用起来很简单. 它用 /debug start开始分析, 用 /debug stop停止。 重要的是,收集数据的时间越多,结果就越好。 建议至少让它收集一分钟的数据。

提示

当然,您只能分析可用的代码。要分析的实体和TileEntities必须存在于世界中,以显示在结果中。

在你结束调试后,它会在运行文件夹的debug子文件夹下创建一个新文件。 它用时间和日期以profile-results-yyyy-mm-dd_hh.mi.ss.txt的格式命名。

阅读分析结果

文件顶部是运行时间(以毫秒为单位)和在那段时间内运行了多少tick。

在它下面, 是类似于下面的代码段的信息:

[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%
section的深度 Section的名字 它占上一级Section的时间百分比。 对于第0层,它是tick所用时间的百分比,而对于第1层,它是其父级Section所用时间的百分比 第二个百分比是在整个tick中花了多少时间。

分析你自己的代码

调试分析器基本支持Entity和TileEntity。 如果您想要分析其他内容,您可能需要手动创建sections,如下所示:

  Profiler#startSection(yourSectionName : String);
  //你想要分析的代码
  Profiler#endSection();
你可以从World, MinecraftServer或 Minecraft 对象中获取 Profiler 对象。 现在,您只需要在生成文件中找到你的Section名称。

基于 MkDocs 使用自定义主题构建. 托管于 Read the Docs.
启用夜间模式