「코드가 어디서 느린지」 정밀 분석.
strace보다 더 깊은 — 함수 단위 CPU 사용률·캐시 미스·시스템 호출 빈도 등.
설치.
apt install linux-tools-generic 또는 dnf install perf.
커널 버전 의존 — 가끔 정확한 버전 필요.
기본.
sudo perf top — 실시간 함수별 CPU 사용.
htop의 함수 버전.
「어느 함수가 CPU 먹나」 즉시.
프로파일링.
sudo perf record -g ./myapp — 실행하며 데이터 수집.
-g로 콜스택.
sudo perf report — 분석 결과 인터랙티브 표시.
「어느 코드 경로가 핫스팟」 정확히.
Flame Graph.
perf 결과를 시각화하는 도구(Brendan Gregg의).
매우 직관적 — 가로축이 CPU 시간, 세로축이 콜스택.
「불꽃 모양」 그래프로 핫스팟 한눈에.
모던 성능 분석의 표준 시각화.
한 줄 요약
perf는 깊은 성능 분석 — perf top(실시간 함수별 CPU), perf record + report(프로파일링·콜스택).
Flame Graph로 시각화.
strace보다 정밀, 모던 성능 분석 표준.
더 알아볼 것
- Brendan Gregg의 Flame Graph
- eBPF·BCC — 차세대 추적
- py-spy — Python 전용