>  기사  >  백엔드 개발  >  내 pprof 도구가 Golang 애플리케이션에 대해 잘못된 출력을 생성하는 이유는 무엇입니까?

내 pprof 도구가 Golang 애플리케이션에 대해 잘못된 출력을 생성하는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-01 13:11:29679검색

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

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.