pprof

pprof is a tool for visualization and analysis of profiling data

Github星跟蹤圖

Build Status
Build status
codecov

Introduction

pprof is a tool for visualization and analysis of profiling data.

pprof reads a collection of profiling samples in profile.proto format and
generates reports to visualize and help analyze the data. It can generate both
text and graphical reports (through the use of the dot visualization package).

profile.proto is a protocol buffer that describes a set of callstacks
and symbolization information. A common usage is to represent a set of
sampled callstacks from statistical profiling. The format is
described on the proto/profile.proto file. For details on protocol
buffers, see https://developers.google.com/protocol-buffers

Profiles can be read from a local file, or over http. Multiple
profiles of the same type can be aggregated or compared.

If the profile samples contain machine addresses, pprof can symbolize
them through the use of the native binutils tools (addr2line and nm).

This is not an official Google product.

Building pprof

Prerequisites:

To build and install it, use the go get tool.

go get -u github.com/google/pprof

Remember to set GOPATH to the directory where you want pprof to be
installed. The binary will be in $GOPATH/bin and the sources under
$GOPATH/src/github.com/google/pprof.

Basic usage

pprof can read a profile from a file or directly from a server via http.
Specify the profile input(s) in the command line, and use options to
indicate how to format the report.

Generate a text report of the profile, sorted by hotness:

% pprof -top [main_binary] profile.pb.gz
Where
    main_binary:  Local path to the main program binary, to enable symbolization
    profile.pb.gz: Local path to the profile in a compressed protobuf, or
                   URL to the http service that serves a profile.

Generate a graph in an SVG file, and open it with a web browser:

pprof -web [main_binary] profile.pb.gz

Run pprof on interactive mode:

If no output formatting option is specified, pprof runs on interactive mode,
where reads the profile and accepts interactive commands for visualization and
refinement of the profile.

pprof [main_binary] profile.pb.gz

This will open a simple shell that takes pprof commands to generate reports.
Type 'help' for available commands/options.

Run pprof via a web interface

If the -http flag is specified, pprof starts a web server at
the specified host:port that provides an interactive web-based interface to pprof.
Host is optional, and is "localhost" by default. Port is optional, and is a
random available port by default. -http=":" starts a server locally at
a random port.

pprof -http=[host]:[port] [main_binary] profile.pb.gz

The preceding command should automatically open your web browser at
the right page; if not, you can manually visit the specified port in
your web browser.

Using pprof with Linux Perf

pprof can read perf.data files generated by the
Linux perf tool by using the
perf_to_profile program from the
perf_data_converter package.

Further documentation

See doc/README.md for more detailed end-user documentation.

See CONTRIBUTING.md for contribution documentation.

See proto/README.md for a description of the profile.proto format.

主要指標

概覽
名稱與所有者google/pprof
主編程語言Go
編程語言Go (語言數: 6)
平台
許可證Apache License 2.0
所有者活动
創建於2016-01-29 01:52:07
推送於2025-05-01 23:54:59
最后一次提交
發布數0
用户参与
星數8.4k
關注者數126
派生數619
提交數712
已啟用問題?
問題數300
打開的問題數46
拉請求數548
打開的拉請求數8
關閉的拉請求數85
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?