더북(TheBook)

안타깝지만 adjust 명령어도 enhance와 마찬가지로 느리다. 이 문제를 조사한 결과, PEP 8 스타일을 따라 모든 모듈을 프로그램 시작할 때 한꺼번에 임포트하는 방식이 원인임을 발견했다(아이템 2 “PEP 8 스타일 가이드를 따르라” 참조). 이 프로그램은 시작할 때 실제로 기능의 일부만 사용하더라도 모든 기능을 초기화하는 비용을 지불하고 있다.

파이썬의 CPython 구현(아이템 1 “사용 중인 파이썬의 버전을 알아두라” 참조)에는 모듈 로딩 속도를 직접 측정하는 -X importtime 플래그가 있다. 다음 예제는 이 플래그를 사용해 우리 명령줄 도구가 얼마나 느린지 진단해본다.

$ python3 -X importtime mycli.py
import time: self [us] | cumulative | imported package
...
import time:       553 |        553 | adjust
import time:   1005348 |    1005348 | enhance
...
import time:      3347 |      14762 | parser