중복 계산, 함수 호출, 분기 예측.
병목 원인에 맞는 첫 수를 고른다
모든 최적화 기법을 한꺼번에 적용하지 말고, 측정된 병목에 가장 가까운 개선부터 시도합니다.
병목
먼저 볼 것
대표 기법
CPU 계산
복잡도와 루프
알고리즘 교체
O(N²) 제거, 루프 불변 이동, SIMD.
메모리 접근
배치와 순회
연속 접근인지, 포인터를 따라 뛰는지.
캐시 친화 구조
vector, reserve, 구조체 재배치.
할당 비용
반복 생성
루프 안 임시 객체와 작은 heap 할당.
재사용
pool, stack allocation, move, reserve.
대기 시간
락/I/O
경합, 블로킹 호출, 너무 잦은 시스템 호출.
범위 축소
배치 처리, 락 범위 감소, 병렬 작업 분할.
좋은 최적화는 “빠른 코드”가 아니라 “측정된 병목을 줄이고 정확성을 유지한 코드”입니다.