GoLand 2026.1 Help

阅读分析器快照

使用 Go 分析器创建的分析快照可以通过不同的指标进行查看。

  • CPU 时间 显示 CPU 执行某个函数所花费的时间。 该值由采样数据派生,表示估算的执行时间。 使用该指标可识别 CPU 密集的代码路径并优化算法。

  • 样本 显示某个函数在采集样本中出现的次数。 分析器会定期捕获调用堆栈,每次捕获为一次样本。 样本数量越多,说明该函数在执行期间被观察到的次数越多。 使用该指标可快速检测热点。

切换指标

  • 请在工具窗口右上角使用 显示 菜单。

    Go 性能优化工具窗口的显示菜单

Go 分析器提供多种视图用于分析快照:

  • 顶部 :展示函数聚合统计信息的扁平视图。

  • :展示函数之间关系的调用图。

  • 火焰图 :调用堆栈的可视化,有助于识别热点路径。

  • :函数调用及其对执行时间贡献的层级视图。

顶部

顶部 视图以扁平表格显示函数的分析聚合数据。 每一行表示一个函数,并显示该函数的耗时或采样次数。

Go 分析器的顶部视图

该视图中的数据来源于分析采样。 每个样本表示程序执行期间捕获的调用堆栈。

表格包含以下指标:

  • 扁平 — 在该函数本身所记录的耗时或采样次数。 不包括它所调用的其他函数的耗时或采样。

  • 扁平% — 该函数本身在总耗时或采样中的占比。

  • 总和%扁平% 的自上而下累计值。

  • 累计 — 在该函数及其所有调用的函数中所记录的总耗时或采样次数。

  • 累计% — 包含该函数及其被调用函数在内的总耗时或采样占比。

使用该视图可找到最耗资源的函数。 优先关注 扁平累计 值最高的函数。

这些值基于统计采样。 每个样本代表一次捕获的调用堆栈,因此这些数值为估算值。

  • 点击表格中的函数即可打开其源代码。

排序结果

  • 点击列页眉可根据选定指标对函数排序,例如 扁平累计

切换指标

  • 请在右上角的 显示 菜单中切换 CPU 时间样本

    • 样本 显示收集到的样本数。

    • CPU 时间 显示将相同数据转换为时间单位后的结果。

视图显示应用程序的调用图。 以节点表示函数,节点间的边表示调用关系。

Go 分析器中的图形视图

每个节点表示一个函数。 每条边表示从一个函数到另一个函数的调用。 节点的大小和颜色反映了函数相关的耗时或采样数量。

节点上的标签显示两个数值:

  • 记录于该函数本身的耗时或采样数

  • 记录于该函数及其被调用函数的总耗时或采样数

使用此视图可以了解函数间的调用方式,并识别高消耗的调用路径。

筛选器节点和边

  • 使用 节点数目 限制显示函数的数量。

  • 使用 节点比例 隐藏贡献小于设定比例的函数。

  • 使用 边比例 隐藏贡献低于设定比例的调用关系。

  • 点击 Apply 更新图表。

切换指标

  • 请在右上角的 显示 菜单中切换 CPU 时间样本

    • 样本 显示收集到的样本数。

    • CPU 时间 显示将相同数据转换为时间单位后的结果。

  1. 点击节点可聚焦于某个函数并检查其连接关系。

  2. 拖动画布以移动视图。

火焰图

火焰图将调用堆栈显示为一组矩形。 每个矩形表示一个函数调用。 矩形的宽度表示函数使用了多少时间或样本数。 矩形越宽表示该函数消耗越大。

父函数显示在子函数的下方。 这种布局有助于理解代码的工作流。

Go 分析器中的火焰图

切换指标

  • 请在右上角的 显示 菜单中切换 CPU 时间样本

    • 样本 显示收集到的样本数。

    • CPU 时间 显示将相同数据转换为时间单位后的结果。

缩放图表

  • 使用 放大放大图标 )和 缩小缩小图标 )图标进行缩放。

    按两次点击一个区块以聚焦指定函数。

    点击 重置缩放重置缩放 )图标以重置缩放比例。

配置视图设置

  1. 在工具栏中打开视图设置菜单。

  2. 启用或禁用以下选项:

    • 显示 Icicle 图 :切换火焰图和冰柱布局。

    • 固定文本 :缩放时保持函数名称可见。

    • 新建火焰图视图 :使用更新后的渲染模式。

    • 单击导航 :点击即可打开函数。

火焰图视图设置

在图形中搜索

  1. 点击 显示搜索工具栏显示搜索工具栏图标 )或按 Ctrl+F

  2. 输入函数名称即可高亮显示匹配区块。

  3. 使用导航控件在匹配项之间切换。

在火焰图中搜索

获取函数详情

  1. 将鼠标悬停在区块上查看详细信息。

  2. 工具提示显示内容:

    • 函数名称。

    • 所有样本或时间的占比。

    • 相对于父函数的占比。

    • 若使用 CPU 时间,则为总毫秒数。

火焰图中的工具提示

捕获图表

  1. 点击工具栏上的 捕获图像 图标(捕获图像)。

  2. 请选择一个选项:

    • 复制到剪贴板 :将图表复制为图片。

    • 保存 :将图表保存为 PNG 文件。

树状视图以层次结构显示函数调用。 每一行表示一个函数。 子行显示由父函数调用的函数。

该视图有助于理解应用程序的执行流程及资源消耗的调用路径。

Go 分析器中的树状图视图

切换指标

  1. 请使用右上角的 显示 菜单。

  2. 根据分析类型选择指标:

    • 分配的对象 :分配对象数量。

    • 分配的空间 :分配的总内存。

    • 在用对象 :当前内存中的对象数量。

    • 在用空间 :当前使用的内存。

树状图视图中的显示菜单

配置视图设置

  1. 在工具栏中打开视图设置菜单。

  2. 启用或禁用以下选项:

    • 显示总时间的百分比 :显示相对于整个分析快照的占比。

    • 显示父项的百分比 :显示相对于父函数的占比。

    • 单击导航 :点击即可打开代码。

树状图视图设置
  1. 展开或收起节点以探索调用路径。

  2. 选择函数以查看其指标。

解释指标

  • 使用这些列分析资源用法:

    • 扁平 — 函数中直接使用或分配的内存。

    • 扁平% — 该函数中占总用法的比例。

    • 累计 — 函数及其所有被调用函数使用的内存。

    • 累计% — 包括子调用在内的总用法占比。

行分析器

当您打开快照时,GoLand 会显示 分析器 工具窗口,并在编辑器中相应的行右侧添加运行时提示。

执行时间较长的行会显示灰色标签,而最耗资源的方法会用带有火焰图标的红色标签标记。

打开快照时显示行分析器提示

切换视图模式分析器 工具窗口中也会更改编辑器中标签的模式。 您可以选择查看方法的总执行时间、其 CPU 时间或执行此行所分配的内存量。

如果您想深入了解标记方法的内部内容,点击提示将带您到方法声明,您可以检查导致缓慢的特定行。

方法实现使用运行时标签标记
2026年 5月 8日