PPROF - это инструмент для визуализации и анализа данных профилирования.
PPROF читает набор образцов профилирования в профиле. Proto Format и генерирует отчеты, чтобы визуализировать и помочь анализировать данные. Он может генерировать как текстовые, так и графические отчеты (с помощью пакета визуализации точек).
Profile.Proto - это буфер протокола, который описывает набор информации о вызове и информации о символизации. Распространенным использованием является представление набора отобранных вызовов из статистического профилирования. Формат описан в файле proto/profile.proto. Для получения подробной информации о буферах протокола см. Https://developers.google.com/protocol-buffers
Профили могут быть прочитаны из локального файла или через HTTP. Несколько профилей одного типа могут быть агрегированы или сравнены.
Если образцы профиля содержат адреса машины, PPROF может символизировать их с помощью нативных инструментов Binutils (AddR2line и NM).
Это не официальный продукт Google.
Предварительные условия:
Go Development Kit о поддерживаемой версии. Следуйте этим инструкциям, чтобы подготовить окружающую среду.
Graphviz: http://www.graphviz.org/ необязательно, используется для генерации графических визуализаций профилей
Чтобы построить и установить:
go install github.com/google/pprof@latest
Двоичный файл будет установлен $GOPATH/bin
( $HOME/go/bin
по умолчанию).
PPROF может прочитать профиль из файла или непосредственно с сервера через HTTP. Укажите входные (ы) профиля в командной строке и используйте параметры, чтобы указать, как отформатировать отчет.
% 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.
pprof -web [main_binary] profile.pb.gz
Если опция форматирования выходного сигнала не указана, PPROF работает в интерактивном режиме, где считывает профиль и принимает интерактивные команды для визуализации и уточнения профиля.
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.
Если указан флаг -http
, PPROF запускает веб -сервер на указанном хосте: порт, который обеспечивает интерактивный веб -интерфейс для PPROF. Хост не является обязательным, и по умолчанию является «локальный хост». Порт необязательно и по умолчанию является случайным портом. -http=":"
Запускает сервер локально в случайном порте.
pprof -http=[host]:[port] [main_binary] profile.pb.gz
Предыдущая команда должна автоматически открывать ваш веб -браузер на нужной странице; Если нет, вы можете вручную посетить указанный порт в вашем веб -браузере.
PPROF может читать файлы perf.data
сгенерированные инструментом Linux perf, используя программу perf_to_profile
из пакета perf_data_converter.
Чтобы просмотреть разборку профилей, собранных из программ GO, составленных в качестве исполняемых файлов Windows, исполняемый файл должен быть построен с помощью go build -buildmode=exe
. LLVM или GCC должны быть установлены, поэтому для pprof
есть необходимые инструменты, такие как addr2line
и nm
.
См. Doc/readme.md для более подробной документации конечного пользователя.
См. Appling.md для документации взноса.
См. Proto/readme.md для описания формата профиля.proto.