더북(TheBook)

파이썬 프로그램에서 최초로 do_enhance 요청 핸들러가 실행될 때, 핸들러는 enhance 모듈을 임포트하면서 1초라는 높은 초기화 비용을 지불한다. 하지만 그 후 do_enhance 요청이 들어오면, 파이썬 프로세스는 모듈이 이미 로드됐는지 확인한 다음에 지역 영역의 enhance 식별자에게 모듈 객체를 대입하기만 하면 된다.

동적 임포트의 비용이 크다고 생각할 수도 있지만, 실제로는 그렇게 나쁘지 않다. 다음 예제는 timeit 내장 모듈(아이템 93 “timeit을 사용한 마이크로벤치마크를 통해 성능이 중요한 코드를 최적화하라” 참조)을 사용해 이미 임포트된 모듈을 다시 동적으로 임포트하는 데 걸리는 시간을 측정한다.