코드를 수정하거나 프로세스를 재시작하지 않고 실행 중인 프로세스에 연결하는 Python 프로그램용 샘플링 프로파일러입니다.
google/pprof
profile.proto 형식의 프로파일링 데이터를 시각화하고 분석하는 CLI 및 웹 도구입니다.
- 스타
- 9,323
- 포크
- 686
- 열린 이슈
- 64
- 마지막 커밋
- 3일 전
어떤 프로젝트인가요?
pprof는 profile.proto 형식으로 수집된 프로파일링 샘플을 읽고, 개발자가 시간이나 메모리를 어디에 쓰는지 파악하는 데 도움이 되는 보고서를 생성합니다. 핫스팟 순으로 정렬된 텍스트 보고서, Graphviz로 렌더링한 그래프 형태의 호출 그래프, 프로파일을 살펴볼 수 있는 대화형 셸 또는 웹 인터페이스를 제공합니다.
프로파일은 로컬 파일에서 불러오거나 HTTP를 통해 가져올 수 있으며, 같은 유형의 프로파일 여러 개를 통합하거나 비교할 수 있습니다. 프로파일에 원시 머신 주소가 포함된 경우 프로그램 바이너리를 지정하면 기본 binutils 도구인 addr2line과 nm을 사용해 심볼을 해석할 수 있습니다. 함께 제공되는 변환기를 통해 Linux perf의 perf.data 파일도 읽을 수 있습니다.
go install github.com/google/pprof@latest 명령으로 설치합니다. Graphviz는 선택 사항이며 그래프 출력에만 필요합니다. 이 프로젝트는 Google의 공식 제품이 아닙니다.
핵심 기능
- 01프로파일 데이터를 바탕으로 핫스팟 순으로 정렬된 텍스트 보고서를 생성합니다.
- 02Graphviz로 렌더링한 SVG 호출 그래프를 생성합니다.
- 03대화형 명령 셸과 브라우저 기반 웹 인터페이스를 제공합니다.
- 04로컬 파일이나 HTTP를 통해 프로파일을 읽습니다.
- 05같은 유형의 프로파일 여러 개를 통합하거나 비교합니다.
- 06addr2line과 nm을 사용해 주소의 심볼을 해석합니다.
활용 사례
- 수집한 프로파일을 통해 Go 서비스의 CPU 또는 메모리 핫스팟을 찾습니다.
- 느린 프로그램의 호출 그래프를 시각화해 어떤 경로에서 시간이 가장 많이 소요되는지 확인합니다.
- 코드 변경 전후의 프로파일을 비교해 변경의 영향을 측정합니다.
- Linux perf 기록을 profile.proto 형식으로 변환해 분석합니다.
빠른 시작
- 1
Go 개발 키트와 Graphviz를 설치합니다(그래픽 출력을 위한 선택 사항)
- 2
Go로 pprof를 빌드하고 설치합니다
go install github.com/google/pprof@latest - 3
프로파일을 핫도 순으로 정렬한 텍스트 보고서를 생성합니다
pprof -top [main_binary] profile.pb.gz
사용 전 알아둘 점
- 그래픽 출력을 사용하려면 Graphviz를 별도로 설치해야 합니다.
포함된 컬렉션
토픽
자주 묻는 질문
- pprof은(는) 무엇인가요?
- profile.proto 형식의 프로파일링 데이터를 시각화하고 분석하는 CLI 및 웹 도구입니다. pprof는 profile.proto 형식으로 수집된 프로파일링 샘플을 읽고, 개발자가 시간이나 메모리를 어디에 쓰는지 파악하는 데 도움이 되는 보고서를 생성합니다. 핫스팟 순으로 정렬된 텍스트 보고서, Graphviz로 렌더링한 그래프 형태의 호출 그래프, 프로파일을 살펴볼 수 있는 대화형 셸 또는 웹 인터페이스를 제공합니다.
- pprof은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- pprof은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- pprof은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. pprof의 마지막 커밋은 2026년 11월 5일입니다.
- pprof은(는) 어디에 사용할 수 있나요?
- 수집한 프로파일을 통해 Go 서비스의 CPU 또는 메모리 핫스팟을 찾습니다. 느린 프로그램의 호출 그래프를 시각화해 어떤 경로에서 시간이 가장 많이 소요되는지 확인합니다. 코드 변경 전후의 프로파일을 비교해 변경의 영향을 측정합니다. Linux perf 기록을 profile.proto 형식으로 변환해 분석합니다.
- pprof는 어떻게 설치하나요?
- Go 개발 키트와 Graphviz를 설치합니다(그래픽 출력을 위한 선택 사항) Go로 pprof를 빌드하고 설치합니다: go install github.com/google/pprof@latest 프로파일을 핫도 순으로 정렬한 텍스트 보고서를 생성합니다: pprof -top [main_binary] profile.pb.gz
- pprof은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/google/pprof
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
함수 호출을 기록하고 코드 실행을 대화형 타임라인으로 시각화하는 오버헤드가 낮은 Python 트레이서입니다.
Safepoint 편향 없이 CPU, 할당, 잠금 및 네이티브 메모리 프로파일을 수집하는 Java용 저오버헤드 샘플링 프로파일러입니다.
CPU 및 메모리 성능 문제를 분석하고 .NET 런타임 코드를 조사하는 데 특화된 무료 Windows 도구입니다.
코드가 어디서 시간을 쓰는지 콘솔, HTML 등으로 보여주는 Python 호출 스택 프로파일러입니다.
실행 중인 애플리케이션의 CPU, 메모리, I/O 프로파일을 수집해 느린 코드의 원인을 개별 코드 줄까지 추적하는 지속 프로파일링 플랫폼입니다.