묶음 시간을 호출당 시간으로 바꾸기
Timer(lambda: f(5000)).repeat(repeat=5, number=20)의 결과가 다음과 같다(단위: 초).
[0.0124, 0.0118, 0.0131, 0.0120, 0.0122]- 다섯 묶음의 중앙값을 구한다.
- 중앙값을 함수 한 번 호출당 시간으로 바꾸고 마이크로초(μs)로 나타낸다.
- 한 번만 실행해 재지 않고 여러 호출을 묶어 여러 번 재는 이유를 적는다.
해설 펼치기
- 정렬하면 0.0118, 0.0120, 0.0122, 0.0124, 0.0131이므로 중앙값은 0.0122초다.
- 한 묶음에 20회 호출했으므로 0.0122/20 = 0.00061초이고, 1,000,000을 곱하면 610 μs다.
- 한 번의 짧은 실행은 재기 어렵고, 다른 프로그램과 운영체제의 영향으로 측정값이 매번 달라진다. 호출을 묶어 시간을 키우고 여러 묶음의 중앙값을 쓰면 튀는 값의 영향이 줄어든다.