측정
profile로 시간이 어디에 쓰이는지 확인합니다.
빠르게 고치는 것보다, 병목을 재현하고 한 번에 하나씩 바꾼 뒤 다시 측정하는 순서가 중요합니다.
profile로 시간이 어디에 쓰이는지 확인합니다.
CPU, 메모리, 할당, 동기화, I/O 중 원인을 좁힙니다.
원인에 맞게 알고리즘, 캐시, 컴파일러, 병렬화를 고릅니다.
성능이 좋아졌는지, 정확성이 깨지지 않았는지 확인합니다.
금지: 느려 보이는 코드를 추측으로 고치기. 최적화는 측정값과 변경 이력을 짝지어야 합니다.