Sie erzählen Ihnen von Ihren Go-Programmen, wie Sie Go Mem Pprof-Svg-Dateien lesen

Veröffentlicht: 2023-02-20

Wenn Sie wissen möchten, wie man go mem pprof svg-Dateien liest, dann sind Sie hier genau richtig. In diesem Artikel zeigen wir Ihnen, wie Sie diese Dateien lesen, damit Sie verstehen, was sie Ihnen über Ihre Go-Programme sagen. Lassen Sie uns zunächst einen Blick darauf werfen, was diese Dateien tatsächlich sind. Go-Mem-pprof-Svg-Dateien werden vom Go-Memory-Profiler generiert. Sie enthalten Informationen über die Speichernutzung Ihrer Go-Programme. Der Profiler sammelt diese Informationen, indem er sich die Speicherzuweisung Ihres Programms ansieht. Es generiert dann einen Bericht, den Sie in Ihrem Browser anzeigen können. Der Bericht enthält viele Informationen, aber der wichtigste Teil ist die Grafik oben. Dieses Diagramm zeigt Ihnen die Gesamtspeichermenge, die Ihr Programm verwendet. Sie können sehen, wie viel Speicher Ihr Programm zu einem bestimmten Zeitpunkt verwendet, indem Sie mit der Maus über das Diagramm fahren. Die angezeigte Zahl ist die Speichermenge in Megabyte, die Ihr Programm verwendet. Sie können auch sehen, wie viel Speicher Ihr Programm verwendet, indem Sie sich die Legende am unteren Rand des Diagramms ansehen. Diese Legende zeigt Ihnen in verschiedenen Farben die Menge an Speicher, die Ihr Programm verwendet. Der grüne Teil der Legende stellt die Speichermenge dar, die Ihr Programm für seinen Heap verwendet. Der blaue Teil stellt die Speichermenge dar, die Ihr Programm für seinen Stack verwendet. Der violette Teil stellt die Speichermenge dar, die Ihr Programm für seinen Garbage Collector verwendet. Nachdem Sie nun wissen, was diese Dateien sind und was sie enthalten, schauen wir uns an, wie man sie liest. Als erstes müssen Sie die Datei in Ihrem Browser öffnen. Sie können dies tun, indem Sie oben auf der Seite auf die Schaltfläche „Im Browser öffnen“ klicken. Sobald die Datei geöffnet ist, sehen Sie oben das Diagramm. Wie wir bereits erwähnt haben, zeigt Ihnen dieses Diagramm die Gesamtspeichermenge, die Ihr Programm verwendet. Sie können den Mauszeiger über das Diagramm bewegen, um zu sehen, wie viel Arbeitsspeicher Ihr Programm zu einem bestimmten Zeitpunkt verwendet. Sie können auch sehen, wie viel Speicher Ihr Programm verwendet, indem Sie sich die Legende am unteren Rand des Diagramms ansehen. Die Legende ist farbcodiert, sodass Sie leicht sehen können, welchen Teil des Speichers Ihr Programm verwendet. Jetzt, da Sie wissen, wie man diese Dateien liest, können Sie anfangen zu verstehen, was

Wie können Sie die Profiler-Ausgabe in CPU Pprof anzeigen?

Wie können Sie die Profiler-Ausgabe in CPU Pprof anzeigen?
Bild von – golangebeispiel

Die Profilerausgabe kann in cpu pprof angezeigt werden, indem der Profiler mit der Option -d ausgeführt wird. Dadurch werden die Profilerdaten in die Datei ausgegeben, die durch die Option -o angegeben ist. Die Profiler-Ausgabe kann auch im Google Chrome-Browser angezeigt werden, indem Sie die Entwicklertools des Browsers öffnen und die Registerkarte „Profile“ auswählen.

Was ist Prof?

Pprof ist eine Anwendung zum Analysieren und Bearbeiten von Profildaten. Pprof berücksichtigt eine Vielzahl von Profiling-Beispielen in seinen Profilergebnissen. Es ist möglich, Berichte zu erstellen, die Daten zu visualisieren und sie im Proto-Format zu analysieren. Das Dot-Visualisierungspaket (mit dem sowohl Text- als auch Grafikberichte erstellt werden können) ermöglicht sowohl Text- als auch Grafikberichte.

Welches der folgenden Pakete kann verwendet werden, um die Speichernutzung für das Go-Programm zu ermitteln?

Beispiele für Speicherzuweisungen werden in Heap-Profilen gemeldet und zur Überwachung der aktuellen und historischen Speichernutzung verwendet.

Die Top 10 Prozesse nach Speicher- und CPU-Auslastung auf meinem Linux-Laptop

Die Speicher- und CPU-Auslastung meines Linux-Laptops sind in der folgenden Tabelle aufgeführt, wobei die zehn wichtigsten Prozesse eine Rangfolge haben. Die Spalte Speicherauslastung beschreibt, wie viel Speicher vom Prozess verwendet wurde, während die Spalte CPU-Auslastung beschreibt, wie viel CPU während des Prozesses verwendet wurde.

Pprof-Tool

Pprof-Tool
Bild von – github

Das Tool pprof ist ein Tool zur Erstellung von Leistungsprofilen, mit dem Sie Daten über Ihr Go-Programm sammeln und analysieren können. Sie können es verwenden, um herauszufinden, wo Ihr Programm die meiste Zeit verbringt, und um Engpässe zu identifizieren, die verbessert werden können.

So erstellen Sie ein Profil für Ihre Go-Programme

Ein Nachteil der oben genannten Methode ist, dass Sie einen Webserver laufen lassen müssen, um Profildaten zu erhalten. Alternativ können Sie etwas wie Watcher verwenden, wenn Sie eine Webanwendung profilieren. Das pprof-Paket enthält das Tool pprof, das mit dem webbasierten Curl-Befehl identisch ist, und pprof-dev, das Debugging-Informationen für die analysierten Go-Pakete ausgibt.

Pprof Profile Pprof

Pprof-Profile sind eine Art Leistungsprofil, das verwendet werden kann, um potenzielle Leistungsengpässe in einer Anwendung zu identifizieren. Sie bieten eine Zusammenfassung der Leistung einer Anwendung und können verwendet werden, um Bereiche zu lokalisieren, die möglicherweise weiter untersucht werden müssen.

In diesem Beitrag werden wir die Interna von pprof untersuchen und wie sie sich auf unsere Profile auswirken, um zu sehen, wie die Dinge zusammenpassen. Das Profil ist der erste Schritt in diesem Prozess. Die Zeichenfolgenserialisierung erfolgt über struct, das Zeichenfolgen in die Zeichenfolgentabelle einfügt. Strings, die mit dieser Struktur serialisiert werden, sind nicht dasselbe wie Strings, die mit proto serialisiert werden. Einer Funktion mit 128 Bytes in Bytes wurde ein Sample (ein Mess-Sample) gegeben. Der Hauptimport des Pakets ist wie folgt (os, testing): ggphy.com/Google/pprof/profile/package/mainimport.html TestProfile ist ein Funktionstest. Erstellen Sie ein leeres Profil, in dem Sie alles hinzufügen können, was wir wollen.

Wenn Sie Beispieltypen verwenden, verwenden Sie diesen. * Profil. Der Werttyp ist in diesem Fall //. Wenn Sie Zuordnungen bekannt machen möchten, müssen Sie ein Profil anlegen. In Bytes, // in Einheiten. Ebenso werden Werte und Probentypen auf die gleiche Weise geordnet. Das folgende Diagramm wurde mit dem Tool pprof – http://8080 profile.pb.gz nach dem Ausführen von test profile_test.go erstellt. Es scheint, dass etwas 128B (Byte) Speicher im Prozessspeicher verwendet hat.

Da der Standort nicht bekannt ist, zeigt die Karte den Standort nicht an. Wenn Sie ein Mapping verwenden, ist der Dateiname bereits sichtbar. Versuchen wir es beim nächsten Mal mit der Namensgebung. Nachdem Sie go test profile_test.go ausgeführt haben, öffnen Sie das Profil erneut mit go. Das Beispiel ist jetzt metadatenfähig, wie das Tool pprof zeigt – http://8080 profile.pb.gz. Das Profil ist weit von dem entfernt, was Sie im Moment in der Realität erwarten könnten, also machen wir ein komplizierteres Muster. Obwohl die Go-Struktur intuitiv keinen Sinn ergibt, erleichtert sie das Verständnis, indem sie Schritt für Schritt ausgehend von einem leeren Profil arbeitet, um das wieder zusammenzusetzen, was wir normalerweise sehen. Wenn jedes Profil viele dieser Stacktraces enthält, werden sie möglicherweise genauso angezeigt wie in Ihrer normalen Profilansicht. Wir haben eine Reihe von Samples, Orten und Funktionen hinzugefügt, um den Prozess realistischer zu gestalten, damit Stack-Traces realistischer dargestellt werden.

CPU.pprof-Ausgänge

Die cpu.pprof-Ausgaben bieten eine detaillierte Ansicht darüber, wie die CPU von der Anwendung verwendet wird. Dies kann für die Leistungsanalyse und -optimierung nützlich sein. Die Ausgaben können in verschiedenen Formaten generiert werden, einschließlich Text, HTML und PDF.