PPROF는 프로파일 링 데이터의 시각화 및 분석 도구입니다.
PPROF는 프로파일로 프로파일 링 샘플 모음을 읽고 Proto Format을 작성하고 데이터를 시각화하고 분석하는 데 도움이되는 보고서를 생성합니다. 텍스트와 그래픽 보고서를 모두 생성 할 수 있습니다 (DOT 시각화 패키지 사용을 통해).
profile.proto는 콜 스택 세트 및 기호 정보를 설명하는 프로토콜 버퍼입니다. 일반적인 사용법은 통계 프로파일 링에서 샘플링 된 콜 스택 세트를 나타내는 것입니다. 형식은 Proto/Profile.proto 파일에 설명되어 있습니다. 프로토콜 버퍼에 대한 자세한 내용은 https://developers.google.com/protocol-buffers를 참조하십시오
프로필은 로컬 파일 또는 HTTP를 통해 읽을 수 있습니다. 동일한 유형의 여러 프로파일을 집계하거나 비교할 수 있습니다.
프로파일 샘플에 기계 주소가 포함 된 경우, PPROF는 기본 Binutils 도구 (addr2line 및 nm)를 사용하여이를 상징 할 수 있습니다.
이것은 공식적인 Google 제품이 아닙니다.
전제 조건 :
지원되는 버전의 개발 키트. 이 지침을 따라 환경을 준비하십시오.
GraphViz : http://www.graphviz.org/ 옵션, 프로필의 그래픽 시각화를 생성하는 데 사용
제작 및 설치하려면 :
go install github.com/google/pprof@latest
바이너리는 $GOPATH/bin (기본적으로 $HOME/go/bin )으로 설치됩니다.
PPROF는 파일에서 또는 HTTP를 통해 서버에서 직접 프로필을 읽을 수 있습니다. 명령 줄에서 프로파일 입력을 지정하고 옵션을 사용하여 보고서를 포맷하는 방법을 나타냅니다.
% pprof -top [main_binary] profile.pb.gz Where main_binary: Local path to the main program binary, to enable symbolization profile.pb.gz: Local path to the profile in a compressed protobuf, or URL to the http service that serves a profile.
pprof -web [main_binary] profile.pb.gz
출력 서식 옵션이 지정되지 않은 경우 PPROF는 대화식 모드에서 실행됩니다. 여기서 프로파일을 읽고 프로파일의 시각화 및 개선을위한 대화식 명령을 수락합니다.
pprof [main_binary] profile.pb.gz This will open a simple shell that takes pprof commands to generate reports. Type 'help' for available commands/options.
-http 플래그가 지정된 경우 PPROF는 지정된 호스트에서 웹 서버를 시작합니다. PRPROF에 대화식 웹 기반 인터페이스를 제공하는 포트. 호스트는 선택 사항이며 기본적으로 "LocalHost"입니다. 포트는 선택 사항이며 기본적으로 임의의 포트입니다. -http=":" 임의의 포트에서 서버를 로컬로 시작합니다.
pprof -http=[host]:[port] [main_binary] profile.pb.gz
앞의 명령은 오른쪽 페이지에서 웹 브라우저를 자동으로 열어야합니다. 그렇지 않은 경우 웹 브라우저에서 지정된 포트를 수동으로 방문 할 수 있습니다.
PPROF는 Perf_Data_Converter 패키지에서 perf_to_profile 프로그램을 사용하여 Linux Perf Tool에서 생성 한 perf.data 파일을 읽을 수 있습니다.
Windows 실행 파일로 컴파일 된 GO 프로그램에서 수집 된 프로파일의 분해를 보려면 go build -buildmode=exe 사용하여 실행 파일을 구축해야합니다. LLVM 또는 GCC를 설치해야하므로 addr2line 및 nm 과 같은 필요한 도구를 pprof 에 사용할 수 있습니다.
자세한 최종 사용자 문서는 Doc/Readme.md를 참조하십시오.
기여 문서는 Contributing.md를 참조하십시오.
프로파일에 대한 설명은 프로토/readme.md를 참조하십시오.