다음과 같은 장난감 코드를 감안할 때, 나는왜 프로파일 러가 작동하지 않습니까?
go tool pprof cpu.prof
을 실행하고 waster1 및 waster2에 대한 유용한 정보를 얻을 수 있기를 기대하지만, 내가 pprof에서 정상을 실행할 때, 내가 가진 전부입니다
Showing nodes accounting for 0, 0% of 0 total
flat flat% sum% cum cum%
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)
}
:
그것은 가능하다 문제가 내가 여기
윈도우 (10)에 우분투를 실행하는 WSL을 사용하고 있다는 것입니다 내가 사용하고있는 코드입니다
이 보이는 윈도우에서 우분투를 실행하는 WSL를 사용하므로 윈도우 10 일이 붉은 청어 점이다 . –
먼저 'pprof'에 대한 인수로 바이너리를 제공해야합니다. 귀하의 프로그램은 얼마 동안 운영됩니까? 의미있는 프로필을 작성하기에 충분한 샘플이 없을 수도 있습니다. – JimB
@JimB add는 함수 (10 초 런타임 이상) 및 도구 명령의 이진수로 여전히 절전 모드로 전환됩니다. –