프로파일링 지도

병목의 증상에 맞는 프로파일러 우선 선택

성능 문제는 감으로 고치는 것이 아니라, CPU 시간, 할당 패턴, I/O 지연처럼 관찰 가능한 지표로 좁혀야 한다.

1

CPU 병목

hotspot, 호출 그래프, cache miss를 보고 시간이 몰리는 함수를 찾는다.

perf · gprof · VTune
2

메모리 병목

할당 빈도, 누수, peak memory, 객체 수명을 확인해 낭비를 줄인다.

Valgrind · Diagnostic Tools
3

I/O 병목

파일, 네트워크, 동기화 대기 시간을 분리해 CPU 최적화와 구분한다.

trace · timeline · logs
Build

측정용 빌드

-O2, -g처럼 실제 성능과 소스 매핑을 함께 챙긴다.

Run

대표 입력 실행

짧은 샘플보다 실제 사용자 패턴과 충분한 실행 시간을 우선한다.

Read

상위 병목 확인

가장 큰 비용부터 보고, 작은 함수 최적화에 먼저 빠지지 않는다.

Fix

가설 하나 수정

알고리즘, 자료구조, 캐시, 할당, 병렬화 중 하나만 바꿔 비교한다.

Repeat

재측정

속도, 메모리, 코드 복잡도가 함께 좋아졌는지 숫자로 확인한다.

운영 원칙

프로파일링의 목적은 도구 사용 자체가 아니라, 성능 문제를 재현 가능한 지표로 바꾸고 수정 전후의 차이를 반복해서 검증하는 것입니다.