• Forge论坛

导航页

  • 主页
  • 向文档做出贡献
  • 入门
    • 概述
    • 模组文件
    • 规划你的模组结构
    • 版本号
  • 核心概念
    • 注册表
    • 端位(Sides)
    • 事件
    • 模组生命周期
    • 资源
    • 国际化与本地化
  • 方块
    • 概述
    • 方块状态
  • 物品
    • 概述
    • BlockEntityWithoutLevelRenderer
  • 网络
    • 概述
    • SimpleImpl
    • 实体的同步
  • 方块实体
    • 概述
    • BlockEntityRenderer
  • 游戏特效
    • 粒子效果
    • 音效
  • 数据储存
    • Capabilities
    • Saved Data
    • 编解码器(Codecs)
  • 图形用户界面
    • 菜单(Menus)
    • 屏幕(Screens)
  • 渲染
    • 模型扩展
      • 概述
      • 根变换
      • 渲染类型
      • 部分可见度
      • 面数据
    • 模型加载器
      • 概述
      • 烘焙模型
      • 变换
      • 物品重载
  • 资源
    • 客户端资源(Assets)
      • 概述
      • 模型
        • 概述
        • 纹理色调
        • 物品属性
    • 服务端数据(Data)
      • 概述
      • 配方
        • 概述
        • 自定义配方
        • 原料
        • 非数据包配方
      • 战利品表
      • 全局战利品修改器
      • 标签
      • 进度
      • 条件性加载数据
  • 数据生成
    • 概述
    • 客户端资源(Assets)
      • 模型提供者
      • 语言提供者
      • 音效提供者
    • 服务端数据(Data)
      • 配方提供者
      • 战利品表提供者
      • 标签提供者
      • 进度提供者
      • 全局战利品修改器提供者
      • 数据包注册表对象提供者
  • 杂项功能
    • 配置
    • 键盘布局
    • 游戏测试
    • Forge更新检查器
    • 调试分析器
      • 使用调试分析器
      • 阅读一个分析结果
      • 分析你自己的代码
  • 进阶主题
    • 访问转换器
  • 向Forge做出贡献
    • 概述
    • Pull Request准则
  • 旧版本
    • 概述
    • 移植到当前版本

调试分析器

Minecraft提供了一个调试分析器,它提供系统数据、当前游戏设置、JVM数据、存档数据和tick信息,以查找耗时的代码。考虑到像TickEvent和计时BlockEntities这样的事情,这对想要找到滞后源的模组开发者和服务器所有者来说非常有用。

使用调试分析器

调试分析器使用起来非常简单。它需要调试绑定键F3 + L来启动分析器。10秒后,它将自动停止;但是,可以通过再次按绑定键提前停止。

注意

当然,你只能分析实际到达的代码路径。要分析的实体和方块实体必须存在于存档中才能显示在结果中。

停止调试器后,它将在运行目录中的debug/profiling子目录中创建一个新的zip。 文件名的格式为日期和时间yyyy-mm-dd_hh_mi_ss-WorldName-VersionNumber.zip

阅读一个分析结果

在每个端位的文件夹(client和server)中,你会发现一个包含结果数据的profiling.txt”文件。在顶部,它首先告诉它运行了多长时间(以毫秒为单位)以及在这段时间内运行了多少tick。

在下面,你将找到与以下片段类似的信息:

[00] levels - 96.70%/96.70%
[01] |   Level 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,它是其父层所用时间的百分比。 第二个百分比告诉整个tick所花的时间。

分析你自己的代码

调试分析器具有对Entity和BlockEntity的基本支持。如果你想分析其他内容,你可能需要手动创建你的部分,如下所示:

ProfilerFiller#push(yourSectionName : String);
// 你想分析的代码
ProfilerFiller#pop();
你可以从Level、MinecraftServer或Minecraft实例获取ProfilerFiller实例。 现在,你只需要在结果文件中搜索你的部分的名称。

Built with MkDocs using a custom theme. Hosted by Read the Docs.
Enable Dark Theme