두 번째로 보았을 때, 이것은 정말로 흥미로운 질문입니다!
하지만 먼저, the docs 다시 한번 준비하시기 바랍니다
STMT 및 설정 매개 변수도 인수없이 호출 할 수있는 개체를 취할 수 있습니다. 그러면 timeit()
에 의해 실행될 타이머 함수에 호출이 포함됩니다. 이 경우에는 여분의 함수 호출로 인해 타이밍 오버 헤드가 약간 더 커집니다. 당신은 함수 호출 오버 헤드에 관찰 된 차이를 속성 수있는 함정에 빠지지하지 않도록 관리 할 때
, 당신은주의 사항 : 첫 번째 인수 중 하나를 호출되는 호출 또는 실행되는 문입니다.
두 줄의 코드에서 서로 다른 두 가지 성능을 측정합니다. 여기
timeit.repeat(lambda: 1+1)
당신이 실행되고 있으며, 실행 시간을 측정하는 문을 통과 : 첫 번째 줄에서
당신이 호출되고 그 실행 시간을 측정하는 호출을 전달합니다
timeit.repeat('lambda: 1+1')
참고 t 모자 두 번째 경우 실제로 함수를 호출하지 않지만 람다를 만드는 데 걸리는 시간을 측정하십시오! 다시 함수 호출의 실행 시간을 측정하고자한다면
것은,이 같은 것을 작성해야 : 비교를 위해
timeit.repeat('test()', 'test=lambda: 1+1')
이 예를 살펴 :
import time
print(min(timeit.repeat(lambda: time.sleep(1), number=1)))
print(min(timeit.repeat('lambda: time.sleep(1)', number=1)))
출력이 차이를 명확하게 보여줍니다 (첫 번째 호출 함수, 두 번째 함수 생성) :
1.0009081270000024
5.370002327254042e-07