반응형
질문
파이썬에서 시간 측정에는 어떤 것을 사용하는 것이 더 좋을까요? time.clock() 또는 time.time()? 어느 쪽이 더 정확도가 높을까요?
예를 들어:
start = time.clock()
... 어떤 작업 수행
elapsed = (time.clock() - start)
대신
start = time.time()
... 어떤 작업 수행
elapsed = (time.time() - start)
답변
3.3 버전부터 time.clock()은 사용이 중지되었으며, 대신 time.process_time() 또는 time.perf_counter()를 사용하는 것이 권장됩니다.
이전에는 2.7 버전에서 time 모듈 문서에 따르면:
time.clock()
Unix에서는 현재 프로세서 시간을 초 단위로 표현한 부동 소수점 숫자로 반환합니다. “프로세서 시간”의 정확도와 사실상의 의미는 C 함수와 동일한 이름의 것에 따라 다르지만, 어쨌든 Python의 벤치마킹이나 알고리즘의 시간 측정에 사용하는 함수입니다.
Windows에서는 이 함수는 이 함수를 처음 호출한 이후 경과한 벽 시계 시간을 초 단위로 반환합니다. 이 값은 Win32 함수 QueryPerformanceCounter()를 기반으로 하며, 일반적으로 1 마이크로초보다 높은 해상도를 가지고 있습니다.
또한, 코드 스니펫을 벤치마킹하기 위한 timeit 모듈도 있습니다.
반응형
댓글