PPROF ist ein Werkzeug zur Visualisierung und Analyse von Profilerierungsdaten.
PPROF liest eine Sammlung von Profilproben im Profil -Format und generiert Berichte zur Visualisierung und Unterstützung der Daten. Es kann sowohl Text- als auch grafische Berichte erzeugen (durch die Verwendung des DOT -Visualisierungspakets).
Profil.Proto ist ein Protokollpuffer, der einen Satz von CallStacks und symbolisierenden Informationen beschreibt. Eine häufige Verwendung besteht darin, eine Reihe von Stichproben Callstacks aus statistischer Profilerstellung darzustellen. Das Format wird in der Proto/Profil.Proto -Datei beschrieben. Weitere Informationen zu Protokollpuffern finden Sie unter https://developers.google.com/protocol-buffers
Profile können aus einer lokalen Datei oder über HTTP gelesen werden. Mehrere Profile desselben Typs können aggregiert oder verglichen werden.
Wenn die Profilproben Maschinenadressen enthalten, kann PPROF diese durch die Verwendung der nativen Binutils -Tools (Addr2line und NM) symbolisieren.
Dies ist kein offizielles Google -Produkt.
Voraussetzungen:
Go Development Kit einer unterstützten Version. Befolgen Sie diese Anweisungen, um die Umgebung vorzubereiten.
GraphViz: http://www.graphviz.org/ optional, verwendet, um grafische Visualisierungen von Profilen zu generieren
Um es zu bauen und zu installieren:
go install github.com/google/pprof@latest
Die Binärdatei wird $GOPATH/bin
( $HOME/go/bin
standardmäßig) installiert.
PPROF kann ein Profil aus einer Datei oder direkt von einem Server über http lesen. Geben Sie die Profileingaben in der Befehlszeile an und geben Sie an, wie Sie den Bericht formatieren.
% 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
Wenn keine Ausgangsformatierungsoption angegeben ist, wird PPROF im interaktiven Modus ausgeführt, in dem das Profil liest und interaktive Befehle zur Visualisierung und Verfeinerung des Profils akzeptiert.
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.
Wenn das Flag -http
-Flag angegeben ist, startet PPROF einen Webserver am angegebenen Host: Port, der eine interaktive webbasierte Schnittstelle für PPROF bietet. Der Host ist optional und standardmäßig "Localhost". Port ist optional und standardmäßig ein zufälliger verfügbarer Port. -http=":"
Startet ein Server lokal an einem zufälligen Port.
pprof -http=[host]:[port] [main_binary] profile.pb.gz
Der vorhergehende Befehl sollte Ihren Webbrowser automatisch auf der rechten Seite öffnen. Wenn nicht, können Sie den angegebenen Port in Ihrem Webbrowser manuell besuchen.
PPROF kann perf.data
-Dateien lesen, die vom Linux -Perf -Tool generiert werden, indem sie das Programm perf_to_profile
aus dem Paket perf_data_converter verwenden.
Um die Demontage von Profilen anzuzeigen, die von Go -Programmen gesammelt wurden, die als Windows Executables zusammengestellt wurden, muss die ausführbare Datei mit go build -buildmode=exe
erstellt werden. LLVM oder addr2line
müssen installiert werden nm
pprof
Weitere detailliertere Dokumentation von Endbenutzer finden Sie unter doc/readme.md.
Siehe Beitrag.md für Beitragsdokumentation.
Eine Beschreibung des Profils.Proto -Formats finden Sie in Proto/Readme.md.