GoLand 2026.2 Help

读取 pprof 分析文件

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

分析器显示有关程序执行的采样数据。 每个样本代表一次捕获的调用堆栈,因此所有数值均为基于统计采样的估算值。

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

切换样本类型。

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

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

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

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

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

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

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

顶部

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

Go 分析器的顶部视图

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

表格包含以下指标:

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

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

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

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

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

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

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

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

排序结果

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

在顶部搜索

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

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

Go 分析器中的图形视图

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

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

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

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

  • 记录在函数本身的数值

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

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

配置图表显示

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

  2. 配置图表选项:

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

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

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

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

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

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

  3. 点击 Apply 更新图表。

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

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

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

在图形中搜索

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

  2. 开始输入函数名称。

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

火焰图

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

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

Go 分析器中的火焰图

缩放图表

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

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

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

配置视图设置

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

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

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

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

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

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

火焰图视图设置

在火焰图中搜索

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

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

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

在火焰图中搜索

获取函数详情

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

    火焰图中的工具提示

捕获图表

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

  2. 请选择一个选项:

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

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

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

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

Go 分析器中的树状图视图

配置视图设置

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

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

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

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

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

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

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

解释指标

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

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

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

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

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

在树状视图中搜索

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

行分析器

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

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

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

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

如果想深入查看带标签函数的内容,点击提示会跳转到函数声明,在那里可以检查导致缓慢的特定行。

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