더북(TheBook)

우수한 성능을 달성한다는 것은, 작성한 코드가 가장 중요하게 여기는 정량적 측정 지표를 만족시키는 것을 뜻한다. 어떤 지표가 중요한지는 문제 도메인, 프로덕션 환경, 사용자 프로파일에 따라 다르며, 모든 상황에 적용할 수 있는 지표는 존재하지 않는다. 성능 엔지니어링(performance engineering)은 프로그램 실행 동작을 분석하고, 개선할 영역을 식별한 후, 가장 중요한 지표를 극대화하거나 최소화하기 위한 크고 작은 변경을 적용하는 작업을 포함하는 분야다.

파이썬은 일반적으로 고성능 언어로 간주되지 않는다. 특히 저수준으로 설계된 언어들과 비교할 때 그렇다. 이런 평판은 병렬성 측면에서 파이썬 런타임이 갖는 부가비용과 제약 때문이다(아이템 68 “스레드를 블러킹 I/O에 사용하고 병렬성에는 사용하지 말라” 참조). 그럼에도 불구하고 파이썬에는 비교적 적은 노력으로 놀라운 성능을 달성하게 돕는 기능들이 많이 포함되어 있다. 이러한 기능을 적절히 활용하면, 파이썬의 고수준 특성으로 인한 생산성의 이점을 유지하면서도 호스트 시스템으로부터 최대한의 성능을 끌어낼 수 있다.