Heim  >  Artikel  >  Backend-Entwicklung  >  Warum erzeugt mein pprof-Tool eine falsche Ausgabe für meine Golang-Anwendung?

Warum erzeugt mein pprof-Tool eine falsche Ausgabe für meine Golang-Anwendung?

Barbara Streisand
Barbara StreisandOriginal
2024-11-01 13:11:29679Durchsuche

 Why is my pprof tool producing incorrect output for my Golang application?

pprof-Tool funktioniert nicht in Golang

Obwohl das pprof-Tool zuvor effektiv funktionierte, hat es sich abrupt verschlechtert und erzeugt unabhängig vom Profilierungsziel eine fehlerhafte Ausgabe. Dieses Problem betrifft sowohl die CPU- als auch die Memprofilierung und erzeugt Callgraphs, die im Verhältnis zur Komplexität der profilierten Anwendungen unverhältnismäßig unfruchtbar sind.

Die betroffenen Webanwendungen funktionieren angemessen, empfangen Millionen von Anfragen und generieren entsprechende Antworten. Das Problem trat vor ein paar Tagen plötzlich unter macOS Yosemite auf und blieb auch nach einem Upgrade auf El Capitan bestehen.

Die betreffende Anwendung importiert das Paket „github.com/davecheney/profile“ und initiiert die Profilerstellung innerhalb der Hauptfunktion durch „defer profile.Start(profile.MemProfile).Stop().“ Allerdings scheint das pprof-Tool eine Fehlfunktion zu haben, wenn es wie folgt aufgerufen wird:

go tool pprof /var/folders/26/2sj70_sn72l_93j7tf6r07gr0000gn/T/profile614358295/mem.pprof

Bei diesem Aufruf wird die Binärdatei weggelassen, die profiliert wurde. Um dieses Problem zu beheben, sollte das Tool wie folgt aufgerufen werden:

go tool pprof ./orig /var/folders/26/2sj70_sn72l_93j7tf6r07gr0000gn/T/profile614358295/mem.pprof

wobei „orig“ die Binärdatei darstellt, die mit aktivierter Profilerstellung erstellt wurde. Durch diese Änderung sollte die vorherige Funktionalität des pprof-Tools wiederhergestellt werden.

Das obige ist der detaillierte Inhalt vonWarum erzeugt mein pprof-Tool eine falsche Ausgabe für meine Golang-Anwendung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn