2017-10-01 4 views

답변

6

두 번째로 보았을 때, 이것은 정말로 흥미로운 질문입니다!

하지만 먼저, 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