더북(TheBook)

아이템 93
timeit을 사용한 마이크로벤치마크를 통해 성능이 중요한 코드를 최적화하라

파이썬 프로그램의 성능을 극대화하고 싶으면 프로파일러를 반드시 써야 한다. 코드가 느려지는 이유가 겉보기에는 명확하지 않을 수 있기 때문이다(아이템 92 “최적화하기 전에 프로파일링을 하라” 참조). 실제 성능 저하의 원인을 찾았다면, 더 나은 아키텍처로 리팩터링하거나 적절한 데이터 구조를 사용하는 것만으로도 성능이 크게 향상될 수 있다(아이템 104 “우선순위 큐로 heapq를 사용하는 방법을 알아두라” 참조). 그러나 여러 번 프로파일링과 최적화를 거쳤음에도 불구하고 여전히 해결되지 않는 핫스팟(hot spot, 병목 구간)이 존재할 수도 있다. 더 복잡한 해결책을 시도하기 전에(아이템 94 “언제, 왜 파이썬을 다른 프로그래밍 언어로 대체할지 알아두라” 참조) timeit 내장 모듈을 사용하여 마이크로벤치마크(microbenchmark)를 실행하는 것이 좋다.