Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 특정 시점의 타이머 틱(경과 시간)을 측정하는 방법

Python에서 코드 실행에 걸린 시간이나 CPU 처리 시간을 측정하려면 time 모듈의 클록(clock) 함수를 사용할 수 있습니다. 공식 문서에서도 이 함수는 벤치마킹(성능 측정) 목적으로 사용하도록 권장하고 있습니다.

예제 코드

import time
t0 = time.clock()
print("Hello")
t1 = time.clock() - t0
print("Time elapsed: ", t1) # 경과된 CPU 시간(초 단위 부동 소수점)

실행 결과

위 코드를 실행하면 다음과 같은 출력을 얻을 수 있습니다.

Time elapsed: 0.0009403145040156798

주요 참고 사항

측정 정밀도는 운영체제마다 내부 클록 설정(초당 틱 수)에 따라 달라지지만, 일반적으로 최소 20ms 이하의 오차 범위를 가집니다. 또한 time.clock()은 플랫폼에 따라 서로 다른 값을 반환한다는 점에 유의해야 합니다.

  • Unix/Linux 계열: 현재 프로세서(CPU) 시간을 초 단위의 부동 소수점 숫자로 반환합니다. 정밀도와 '프로세서 시간'의 정확한 의미는 동일한 이름의 C 함수에 의존하지만, 어느 경우든 Python 코드나 알고리즘의 성능을 측정하는 데 적합한 함수입니다.
  • Windows: 이 함수가 처음 호출된 이후로 경과된 실제 시간(wall-clock seconds)을 부동 소수점 숫자로 반환합니다. 내부적으로 Win32 API의 QueryPerformanceCounter()를 기반으로 하며, 해상도는 일반적으로 1마이크로초보다 더 뛰어납니다.

최신 Python 버전에서의 대안

참고로 time.clock()은 Python 3.3부터 지원 중단(deprecated)되었으며, Python 3.8부터는 완전히 제거되었습니다. 따라서 최신 버전의 Python에서는 용도에 맞게 아래 함수를 사용하는 것이 좋습니다.

  • time.perf_counter(): 실제 경과 시간을 가장 높은 정밀도로 측정할 때 사용합니다.
  • time.process_time(): 프로세스가 실제로 CPU를 사용한 시간만 측정할 때 사용합니다.