python 타이머 파이썬:느린 timeit() 함수




파이썬 타이머 (4)

timeit () 외부에서 아래 코드를 실행하면 즉시 완료되는 것처럼 보입니다. 그러나 timeit () 함수 내에서 실행하면 훨씬 오래 걸립니다. 왜?

>>> import timeit
>>> t = timeit.Timer("3**4**5")
>>> t.timeit()
16.55522028637718

사용 : Python 3.1 (x86) - AMD Athlon 64 X2 - WinXP (32 비트)


Timeit 은 기본적으로 백만 개의 루프를 실행합니다.

또한 운영 관련 문제가있을 수 있습니다. (3**4)**5 != 3**4**5 .


timeit() 함수는 코드를 여러 번 실행하고 (기본값은 백만) 시간의 평균을 취합니다.

코드를 한 번만 실행하려면 다음과 같이하십시오.

t.timeit(1)

그러나 그것은 당신에게 왜곡 된 결과를 줄 것입니다 - 그것은 좋은 이유로 반복됩니다.

루프 당 반복 시간을 얻으려면 결과를 루프 수로 나눕니다. 백만 명이 너무 많으면 반복 횟수에 더 작은 값을 사용하십시오.

count = 1000
print t.timeit(count) / count

timeit은 기본적으로 100 만 번 실행되기 때문에. 요점은 마이크로 벤치 마크를하는 것이고 짧은 이벤트의 정확한 타이밍을 얻는 유일한 방법은 여러 번 반복하는 것입니다.


docs 에 따르면 Timer.timeit ()은 기본적으로 코드를 백만 번 실행합니다. 이 기본값을 변경하려면 "숫자"매개 변수를 사용하십시오.

t.timeit(number=100)

예를 들면.







timeit