프로파일러 선택 기준

성능 진단 순서

프로파일링은 느린 부분을 찾는 작업이지만, 첫 단계는 “무엇이 느린가”를 CPU, 메모리, I/O, 동기화 관점으로 분리하는 것이다.

Symptom

CPU 사용률이 높다

특정 함수에 시간이 몰리거나 프레임 시간이 길어진다.

Metric

hotspot · call graph

샘플링 결과와 호출 경로에서 상위 비용을 확인한다.

Tool

perf · gprof · VTune

릴리스 최적화와 심볼을 함께 켜고 함수 단위 비용을 본다.

Next

가설 하나 수정

알고리즘, 캐시, 분기, 인라인 중 한 가지를 바꾼다.

Symptom

메모리 증가 추적

장시간 실행에서 peak memory가 내려오지 않는다.

Metric

allocation · leak

할당 위치, 객체 수명, 해제되지 않은 블록을 추적한다.

Tool

Valgrind · ASan · LSan

느리지만 상세한 검사와 빠른 계측 검사를 상황에 맞춘다.

Next

소유권 정리

RAII, 스마트 포인터, 컨테이너 수명 규칙을 점검한다.

Symptom

대기 시간이 길다

CPU는 남는데 파일, 네트워크, lock 때문에 멈춘다.

Metric

I/O wait · lock wait

작업별 대기 시간과 큐 길이를 실행 흐름에서 분리한다.

Tool

timeline · trace · 로그

시간축에서 계산, 대기, 시스템 호출 구간을 나눠 본다.

Next

버퍼링 또는 분리

호출 횟수 감소, 비동기화, lock 범위 축소를 검증한다.