optimization loop

최적화는 감이 아니라 측정 루프다

빠르게 고치는 것보다, 병목을 재현하고 한 번에 하나씩 바꾼 뒤 다시 측정하는 순서가 중요합니다.

1

측정

profile로 시간이 어디에 쓰이는지 확인합니다.

2

병목 분류

CPU, 메모리, 할당, 동기화, I/O 중 원인을 좁힙니다.

3

기법 선택

원인에 맞게 알고리즘, 캐시, 컴파일러, 병렬화를 고릅니다.

4

재측정

성능이 좋아졌는지, 정확성이 깨지지 않았는지 확인합니다.

금지: 느려 보이는 코드를 추측으로 고치기. 최적화는 측정값과 변경 이력을 짝지어야 합니다.