一款 Python 程序采样性能分析器,无需修改代码或重启程序即可附加到运行中的进程。
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
安装 Go 开发工具包和 Graphviz(可选,用于生成图形输出)
- 2
使用 Go 构建并安装 pprof
go install github.com/google/pprof@latest - 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 数据每日更新。
相关项目
1.6万+11 本周559RustMIT更新于 昨天
一款低开销的 Python 追踪工具,将代码执行过程记录并以交互式时间线可视化。
7775+3 本周479PythonApache-2.0更新于 上个月
低开销的 Java 采样性能分析器,可采集 CPU、内存分配、锁竞争和本地内存等剖析数据。
9189+8 本周994C++Apache-2.0维护活跃更新于 昨天
免费的 Windows 性能分析工具,用于定位 CPU 和内存相关的性能问题,并对 .NET 运行时代码提供专门支持。
4780+2 本周780C#MIT维护活跃更新于 前天
Python 调用栈性能分析器,帮你找出代码慢在哪里,支持控制台与 HTML 等多种输出。
8026+4 本周301PythonBSD-3-Clause更新于 6天前
持续性能剖析平台,采集运行中应用的 CPU、内存和 I/O 剖析数据,可定位到具体代码行。
1.2万834GoAGPL-3.0维护活跃更新于 3小时前