누군가가 왜 이런 일이 일어 났는지 설명 할 수 있습니까? 파이썬 시간이 작동하지 않습니까?
[email protected] ~ $ time python /usr/lib64/python2.7/timeit.py -n 1 \
-- 'x = 10**1000'
1 loops, best of 3: 0.954 usec per loop
real 0m0.055s
user 0m0.050s
sys 0m0.000s
[email protected] ~ $ time python /usr/lib64/python2.7/timeit.py -n 1 \
-- 'x = 10**100000'
1 loops, best of 3: 0.954 usec per loop
real 0m0.067s
user 0m0.040s
sys 0m0.020s
[email protected] ~ $ time python /usr/lib64/python2.7/timeit.py -n 1 \
-- 'x = 10**10000000'
1 loops, best of 3: 0.954 usec per loop
real 0m20.802s
user 0m20.540s
sys 0m0.170s
나는
timeit
에서 동일한 결과를 얻을 수 있지만,
time
는
10**10000000
을 평가하는 20 초 이상 걸리는 것을 알려줍니다.
>>> t = time.time()
>>> print timeit.timeit('x = 10**10000000;', number=1)
5.00679016113e-06
>>> print time.time() - t
20.6168580055
왜 내 작업 timeit
하지, 또는 내가 무슨 일을하고있는 중이 야 : 나는 인터프리터에서 timeit
를 호출하면 같은 일이 일어날까요?
추가 정보 :
>>> print sys.version
2.7.1+ (2.7:4f07cacb2c3b+, Mar 28 2011, 23:11:59)
[GCC 4.4.5]
>>> print sys.version_info
>>> sys.version_info(major=2, minor=7, micro=2, releaselevel='alpha', serial=0)
UPDATE : 여기
다른 매우 흥미로운 관찰의 :이 기능을 정의한 후 Enter 키를 누르면
>>> def run():
... t = time.time()
... x = 10**10000000
... print time.time() - t
, 그것은 절반 분 소요가 내가 프롬프트로 돌아갈 때까지. 그런 다음 :
>>> run()
2.14576721191e-06
왜 그런가요? 함수 본문이 미리 컴파일되거나 어떻게 든 최적화되어 있습니까?
맞을 때마다 계산을 수행하면 시간이 오래 걸립니다. 파이썬이 나에게 표현을 미리 계산할지는 몰랐다. –
@Attila - 지금까지 내가 한 적이 없습니다. –