folgende Spielzeug Code gegeben, würde ich erwarten, dassWarum funktioniert der Profiler nicht für mich?
go tool pprof cpu.prof
laufen und nützliche Informationen über waster1 und waster2 zu bekommen, aber wenn ich oben in pprof laufen, alles, was ich bekommen:
Showing nodes accounting for 0, 0% of 0 total
flat flat% sum% cum cum%
Es ist möglich, das Problem ist, dass ich WSL bin mit Ubuntu unter Windows 10.
Hier laufen ist der Code ich verwende:
package main
import (
"fmt"
"log"
"os"
"runtime/pprof"
)
func waster2() int {
j := 0;
for i := 0; i < 100; i++ {
j += waster1()
}
return j
}
func waster1() int {
j := 0;
for i := 0; i < 10000; i++ {
j++
}
return j
}
func main() {
f, err := os.Create("cpu.prof")
if err != nil {
log.Fatal("could not create CPU profile: ", err)
}
if err := pprof.StartCPUProfile(f); err != nil {
log.Fatal("could not start CPU profile: ", err)
}
defer pprof.StopCPUProfile()
j := waster2()
fmt.Println(j)
}
Sieht aus wie es das Gleiche tut auf Debian läuft von selbst, so dass die Windows-10, was ist ein roter Hering . –
Zuerst müssen Sie die Binärdatei als Argument für 'pprof' bereitstellen. Wie lange läuft Ihr Programm? Möglicherweise verfügen Sie nicht über genügend Stichproben, um ein aussagekräftiges Profil zu erstellen. – JimB
@JimB fügt den Funktionen (über 10 Sekunden Laufzeit jetzt) und der Binärdatei zum Tool-Befehl noch keine Ausgabe hinzu. –