GoLand 2026.3 Help

读取 pprof 分析文件

收集完分析文件后,可以在 Go 优化 工具窗口中进行分析。

CPU、堆、Allocs、Block 和 Mutex 分析报告使用采样数据,因此其值为估计值。 Goroutine 和 Goroutine Leak 分析报告是在捕获时所报告的 goroutine 的快照。

可以用不同的方式查看数据,如表格、调用图或火焰图。 每个视图高亮显示性能的不同切面,帮助查找高开销的函数和调用路径。

默认情况下,GoLand 会在 火焰图 视图中打开分析报告。

切换样本类型。

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

    Go 优化工具窗口中的 Show 菜单。

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

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

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

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

  • 树 :函数调用的层次结构视图。 根据所选样本类型,它会显示 CPU 时间、内存、延迟或计数。

顶部

顶部 视图以平面表格形式显示函数的分析数据。 每一行表示一个函数。

Go 分析器的顶部视图

该视图汇总所选分析报告中的数据。 对于使用采样的分析报告,数字为估计值。

所选样本类型决定数字显示的内容:

  • CPU 时间 :CPU 执行时间。

  • 分配的空间 和 在用空间 :以字节为单位的内存。

  • 延迟 :goroutine 花费在等待上的时间。

  • 样本 :包含该函数的堆栈样本数量。

  • 分配的对象 和 在用对象 :对象数量。

  • 争用 :等待锁或其他同步操作的次数。

  • Goroutine 和 Goroutine 泄漏 :具有该堆栈跟踪的 goroutine 数量。

表格包含以下指标:

  • 扁平 – 来自函数本身的 CPU 时间、内存、延迟或计数。 不包括其调用的函数中的数据。

  • 扁平% – 来自函数本身的总 CPU 时间、内存、延迟或计数的百分比。

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

  • 累计 – 来自该函数及其调用的所有函数的总 CPU 时间、内存、延迟或计数。

  • 累计% – 来自该函数及其被调用方的总 CPU 时间、内存、延迟或计数的百分比。

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

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

排序结果

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

在顶部搜索

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

图

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

Go 分析器中的图形视图

每个节点表示一个函数。 每条边表示从一个函数到另一个函数的调用。

在内存分析文件中,图表还可以包含显示函数调用之间已分配内存块的紧凑分配节点。

Go 分析器中的紧凑分配节点图视图

每个节点标签显示两个数值:

  • 记录在函数本身的数值

  • 记录在该函数及其调用的所有函数中的总数值

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

配置图表显示

  1. 点击 配置 位于右上角。

  2. 配置图表选项:

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

    • 节点比例 会隐藏贡献小于指定总采样份额的函数。

    • 边比例 会隐藏贡献小于指定总采样份额的调用。

    • 调用树 控制函数在图表中的显示方式。

      禁用该选项时,相同函数的节点会合并为一个节点。 启用时,每个调用单独显示,有助于区分不同的调用路径。

      例如,如果函数 foo() 在程序的不同位置被调用,默认图表会为 foo() 显示一个节点,但启用 调用树 后,每次对 foo() 的调用都作为单独的节点出现。

  3. 点击 Apply 更新图表。

    Go 分析器中的图表设置
  1. 点击节点可聚焦于某个函数并检查其连接关系。

  2. 双击节点以在编辑器中打开函数。

  3. 拖动画布以移动视图。 可以使用鼠标右键,或者按住 Ctrl ,用鼠标左键或右键拖动。

在图形中搜索

  1. 按 Ctrl+F ,或点击左侧工具栏上的 在图中查找 (显示搜索工具栏图标)。

  2. 开始输入函数名称。

    搜索弹窗会显示所有图节点,并定位到选中的函数。

火焰图

火焰图将调用堆栈显示为一组矩形。 每个矩形表示一个函数调用。 根据所选样本类型,矩形的宽度显示 CPU 时间、内存、延迟或计数。 矩形越宽表示该函数消耗越大。

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

Go 分析器中的火焰图

默认情况下,GoLand 以倒瀑布图的形式显示火焰图,根帧位于顶部,调用堆栈向下延伸,随着代码深入逐步展开。 可以翻转方向,并从图表的展示设置中切换到 新建火焰图 视图以获得另一种呈现方式。

缩放图表

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

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

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

配置视图设置

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

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

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

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

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

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

火焰图视图设置

在火焰图中搜索

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

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

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

在火焰图中搜索

获取函数详情

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

    火焰图中的工具提示

捕获图表

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

  2. 请选择一个选项:

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

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

树

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

此视图可帮助了解调用路径,并找出使用最多 CPU 或内存、等待时间最长,或在最多样本或 goroutine 堆栈中出现的函数。

Go 分析器中的树状图视图

配置视图设置

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

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

    • 显示占总值的百分比 :显示所有样本值的总和。

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

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

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

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

解释指标

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

    • 扁平 – 来自函数本身的 CPU 时间、内存、延迟或计数。

    • 扁平% – 来自函数本身的总 CPU 时间、内存、延迟或计数的百分比。

    • 累计 – 来自该函数及其所有被调用方的总 CPU 时间、内存、延迟或计数。

    • 累计% – 来自该函数及其被调用方的总 CPU 时间、内存、延迟或计数的百分比。

在树状视图中搜索

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

浏览快照

您可以在保持聚焦于特定方法的同时,在标签页之间切换。 右键点击所需的方法,并选择您希望打开的其他视图。

在 Profiler 工具窗口中跳转标签

行分析器

打开 受支持的 pprof 兼容分析报告时,GoLand 会显示 Go 优化 工具窗口,并在编辑器中相应行附近添加运行时提示。

对于导入的分析报告,GoLand 使用当前源代码作为基线。 当无法验证分析报告与源代码行匹配时,会显示警告。

具有显著值的行会显示灰色标签,而具有最高值的行会用带火焰图标的红色标签标记。

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

在 Go 优化 工具窗口中切换样本类型也会更改编辑器中的标签。 标签会显示所选样本类型的值,例如 CPU 时间、已分配内存、延迟或计数。

要检查带标签的函数,请点击其提示。 IDE 会打开声明,可在其中检查影响所选值的行。

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