Ich habe eine relativ große Web-Anwendung in Go geschrieben, die Gorillas Mux zum Routing verwendet. Ich habe kürzlich festgestellt, dass meine Webanwendung ziemlich langsam ist und ich möchte die Webanwendung profilieren.
Nachdem ich darüber gelesen habe, scheint es, dass net / http / pprof das ist, was ich brauche. Aber ich kann es nicht mit mux laufen lassen; sogar im Falle der einfachsten Webanwendung.
Weiß jemand, wie man das macht?
Hier ist ein Beispiel für einen trivialen Code, der nicht funktioniert (d. h. nichts wird bedient).
%Vor% Entschuldigung für diese Frage. Die Antwort ist in der Funktion init () von pprof . Man muss nur 4 Funktionen von pprof
zum Mux-Router hinzufügen. Hier ist der feste Code von oben.
Meine bevorzugte Methode hierfür ist, dass net/http/pprof
sich selbst auf http.DefaultServeMux
registriert und dann alle Anfragen mit /debug/pprof/
mit:
Ich finde, dass dieser Ansatz viel stabiler ist als einer, der von der Implementierung einer versteckten Initialisierungsmethode abhängt, und garantiert auch, dass Sie nichts verpassen.
Ich habe etwas anderes gemacht, ich habe einen anderen nativen HTTP-Server auf einem anderen Port hinzugefügt und es funktioniert einfach aus der Box
%Vor%Jetzt befindet sich der pprof-Endpunkt bei: Ссылка und die Anwendung läuft auf Port: 8080
Tags und Links go