Golang의 pprof 도구 오작동
이전에는 효과적으로 작동했음에도 불구하고 pprof 도구가 갑자기 저하되어 프로파일링 대상에 관계없이 잘못된 출력이 생성되었습니다. 이 문제는 CPU와 memprofiling 모두에 영향을 미치며 프로파일링된 애플리케이션의 복잡성과 관련하여 불균형적으로 불모지인 호출 그래프를 생성합니다.
영향을 받는 웹 애플리케이션은 적절하게 작동하여 수백만 개의 요청을 받고 적절한 응답을 생성합니다. 문제는 며칠 전 macOS Yosemite에서 갑자기 나타났으며 El Capitan으로 업그레이드한 후에도 지속됩니다.
문제의 애플리케이션은 "github.com/davecheney/profile" 패키지를 가져오고 기본 기능 내에서 프로파일링을 시작합니다. "defer profile.Start(profile.MemProfile).Stop()"을 통해. 그러나 pprof 도구는 다음과 같이 호출될 때 오작동하는 것 같습니다.
go tool pprof /var/folders/26/2sj70_sn72l_93j7tf6r07gr0000gn/T/profile614358295/mem.pprof
이 호출은 프로파일링된 바이너리를 생략합니다. 이 문제를 해결하려면 다음과 같이 도구를 호출해야 합니다.
go tool pprof ./orig /var/folders/26/2sj70_sn72l_93j7tf6r07gr0000gn/T/profile614358295/mem.pprof
여기서 "orig"는 프로파일링이 활성화된 상태로 빌드된 바이너리를 나타냅니다. 이 수정으로 pprof 도구가 이전 기능으로 복원됩니다.
위 내용은 내 pprof 도구가 Golang 애플리케이션에 대해 잘못된 출력을 생성하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!