Repolode
google

google/pprof

用于可视化和分析 profile.proto 格式性能剖析数据的命令行与 Web 工具。

Star
9,323
Fork
686
未关闭 Issue
64
最近提交
3天前

这是什么?

pprof 读取 profile.proto 格式的性能采样数据,生成帮助开发者定位 CPU 或内存热点的报告。它可以输出按热度排序的文本报告、通过 Graphviz 渲染的调用图,也可以进入交互式命令行或启动 Web 界面浏览剖析结果。

剖析数据可以从本地文件读取,也可以通过 HTTP 获取,同一类型的多份剖析数据可以合并或对比。若数据中包含机器地址,pprof 可借助 binutils 的 addr2line 和 nm 结合程序二进制文件进行符号化。通过配套的转换工具,也能读取 Linux perf 生成的 perf.data 文件。

使用 go install github.com/google/pprof@latest 即可安装。生成图形输出时需要可选安装 Graphviz。该项目并非 Google 官方产品。

核心功能

  • 01根据剖析数据生成按热度排序的文本报告。
  • 02通过 Graphviz 生成 SVG 调用图。
  • 03提供交互式命令行和基于浏览器的 Web 界面。
  • 04支持从本地文件或 HTTP 读取剖析数据。
  • 05可合并或对比同一类型的多份剖析数据。
  • 06借助 addr2line 和 nm 对地址进行符号化。

适用场景

  • 从采集到的剖析文件中定位 Go 服务的 CPU 或内存热点。
  • 通过调用图查看慢程序中哪些路径耗时最多。
  • 对比代码修改前后的剖析数据,评估改动效果。
  • 将 Linux perf 记录转换为 profile.proto 格式后进行分析。

快速上手

  1. 1

    安装 Go 开发工具包和 Graphviz(可选,用于生成图形输出)

  2. 2

    使用 Go 构建并安装 pprof

    go install github.com/google/pprof@latest
  3. 3

    生成按热点排序的性能剖析文本报告

    pprof -top [main_binary] profile.pb.gz

使用前须知

  • 图形输出需要单独安装 Graphviz。

收录于专题

标签

常见问题

pprof 是什么?
用于可视化和分析 profile.proto 格式性能剖析数据的命令行与 Web 工具。 pprof 读取 profile.proto 格式的性能采样数据,生成帮助开发者定位 CPU 或内存热点的报告。它可以输出按热度排序的文本报告、通过 Graphviz 渲染的调用图,也可以进入交互式命令行或启动 Web 界面浏览剖析结果。
pprof 可以免费使用吗?用的什么许可证?
pprof 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
pprof 还在维护吗?
活跃维护中。pprof 最近一次提交是在 2026年11月5日。
pprof 适合用来做什么?
从采集到的剖析文件中定位 Go 服务的 CPU 或内存热点。 通过调用图查看慢程序中哪些路径耗时最多。 对比代码修改前后的剖析数据,评估改动效果。 将 Linux perf 记录转换为 profile.proto 格式后进行分析。
pprof 怎么安装和运行?
安装 Go 开发工具包和 Graphviz(可选,用于生成图形输出) 使用 Go 构建并安装 pprof: go install github.com/google/pprof@latest 生成按热点排序的性能剖析文本报告: pprof -top [main_binary] profile.pb.gz
在哪里获取 pprof?
源代码和安装说明在 GitHub 上:https://github.com/google/pprof

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目