프로파일링 결과
시간, 할당, 캐시 미스, lock 대기처럼 실제로 높은 지표를 먼저 봅니다.
최적화는 추측이 아니라 측정에서 출발합니다. 병목 유형을 분류하고 비용 대비 효과가 큰 선택지를 적용한 뒤, 같은 조건에서 다시 확인합니다.
시간, 할당, 캐시 미스, lock 대기처럼 실제로 높은 지표를 먼저 봅니다.
CPU, 메모리 접근, 할당, 동기화, I/O 중 어디에 가까운지 분류합니다.
정확성을 유지하면서 가장 작은 변경으로 검증 가능한 개선을 고릅니다.
같은 입력과 빌드 조건에서 전후 차이를 비교하고 다음 병목으로 반복합니다.
릴리스 빌드가 아니거나 인라인, 벡터화, LTO 여지가 클 때 먼저 확인합니다.
입력 크기가 커질수록 시간이 급증하면 복잡도와 컨테이너 선택을 바꿉니다.
cache miss와 랜덤 접근이 높으면 연속 배치, 순회 순서, AoS/SoA를 봅니다.
작은 객체 생성이 반복되면 reserve, 재사용, 풀, 이동 시맨틱을 적용합니다.
독립 작업이 충분하고 동기화 비용보다 계산량이 클 때 분할 실행을 선택합니다.