PPROF adalah alat untuk visualisasi dan analisis data profil.
PPROF membaca kumpulan sampel profil dalam format Profile.Proto dan menghasilkan laporan untuk memvisualisasikan dan membantu menganalisis data. Ini dapat menghasilkan laporan teks dan grafik (melalui penggunaan paket visualisasi DOT).
Profile.Proto adalah buffer protokol yang menjelaskan serangkaian callstack dan informasi simbolisasi. Penggunaan umum adalah mewakili satu set callstack sampled dari profil statistik. Format dijelaskan pada file Proto/Profile.proto. Untuk detail tentang buffer protokol, lihat https://developers.google.com/protocol-buffers
Profil dapat dibaca dari file lokal, atau lebih dari HTTP. Beberapa profil dari jenis yang sama dapat dikumpulkan atau dibandingkan.
Jika sampel profil berisi alamat mesin, PPROF dapat melambangkannya melalui penggunaan alat binutils asli (AddR2line dan NM).
Ini bukan produk Google resmi.
Prasyarat:
GO Development Kit dari versi yang didukung. Ikuti instruksi ini untuk mempersiapkan lingkungan.
Graphviz: http://www.graphviz.org/ opsional, digunakan untuk menghasilkan visualisasi grafis profil
Untuk membangun dan menginstalnya:
go install github.com/google/pprof@latest
Biner akan dipasang $GOPATH/bin
( $HOME/go/bin
secara default).
PPROF dapat membaca profil dari file atau langsung dari server melalui HTTP. Tentukan input profil di baris perintah, dan gunakan opsi untuk menunjukkan cara memformat laporan.
% 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
Jika tidak ada opsi pemformatan output yang ditentukan, PPROF berjalan pada mode interaktif, di mana membaca profil dan menerima perintah interaktif untuk visualisasi dan penyempurnaan profil.
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.
Jika bendera -http
ditentukan, PPROF memulai server web di port host yang ditentukan yang menyediakan antarmuka berbasis web interaktif ke PPROF. Host opsional, dan "localhost" secara default. Port adalah opsional, dan merupakan port yang tersedia secara acak secara default. -http=":"
Memulai server secara lokal di port acak.
pprof -http=[host]:[port] [main_binary] profile.pb.gz
Perintah sebelumnya harus secara otomatis membuka browser web Anda di halaman kanan; Jika tidak, Anda dapat secara manual mengunjungi port yang ditentukan di browser web Anda.
PPROF dapat membaca file perf.data
yang dihasilkan oleh alat Linux perf dengan menggunakan program perf_to_profile
dari paket perf_data_converter.
Untuk melihat pembongkaran profil yang dikumpulkan dari program GO yang dikompilasi sebagai Windows Executable, yang dapat dieksekusi harus dibangun dengan go build -buildmode=exe
. LLVM atau GCC harus diinstal, jadi alat yang diperlukan seperti addr2line
dan nm
tersedia untuk pprof
.
Lihat DOC/README.MD untuk dokumentasi pengguna akhir yang lebih rinci.
Lihat Kontribusi.MD untuk dokumentasi kontribusi.
Lihat Proto/Readme.md untuk deskripsi format profil.