저는 python2와 python3 모두에서 프로젝트를 지원하고 있습니다. 그리고 python3 인터프리터가 python2 인터프리터로로드하는 데 거의 3 배의 시간이 걸리는 것으로 나타났습니다.python3이 python2를로드하는 데 두 배의 시간이 걸리는 이유는 무엇입니까?
없는 코드
$ cat hello.py
print('Hello World!')
$ python -V
Python 3.4.2
$ time python hello.py
Hello World!
real 0m1.561s
user 0m1.290s
sys 0m0.110s
$ python2 -V
Python 2.7.9
$ time python2 hello.py
Hello World!
real 0m0.613s
user 0m0.513s
sys 0m0.070s
그리고 한 번 더 (아치 리눅스에서 실행) :
$ rm foo ; touch foo ; time python foo ; time python2 foo
real 0m1.710s
user 0m1.297s
sys 0m0.103s
real 0m1.040s
user 0m0.667s
sys 0m0.100s
$ echo $PYTHONSTARTUP
$ rm foo ; touch foo ; time python -B foo ; time python2 -B foo
real 0m1.554s
user 0m1.117s
sys 0m0.123s
real 0m0.678s
user 0m0.557s
sys 0m0.090s
가 무슨 일이야?
어떤 OS입니까? 어떤 특정 버전의 python2.x 및 python3.x를 실행하고 있습니까? 필자는 이전의 python3.x 버전이 대부분 "기능 구현 - 성능에 대해 걱정하지 마십시오."라는 것을 알고 있습니다. IIRC python3.3부터는 (대부분의 경우) 성능이 python2.x에 가까워지기 시작했다고 생각합니다. – mgilson
정확히 스크립트가 수행하는 작업은 무엇입니까? 각 스크립트에서 사용하고있는 문자열 유형과 관련이 있다고 생각합니다. 빈 파이썬 파일을 만들고 동일한 테스트를 실행 해보십시오. 첫 번째 py3 테스트에 2 배 더 느린 이상치가 있습니다. 그렇다면 그들은 정확히 동일했습니다. –
그 시간이 "로드"시간인지 어떻게 알 수 있습니까? 그것은 또한 여분의 시간을 필요로하는 "언로드"일 수 있습니다. :) – selbie