파이썬에서 타이밍에 사용하는 것이 더 낫습니까? time.clock () 또는 time.time ()? 어느 것이 더 정확한가?
예를 들면 다음과 같습니다.
start = time.clock()
... do something
elapsed = (time.clock() - start)
vs.
start = time.time()
... do something
elapsed = (time.time() - start)
답변
3.3로, time.clock () 되지 않습니다 , 사용하도록 제안 것 time.process_time () 또는 time.perf_counter () 대신합니다.
이전의 2.7에서는 시간 모듈 문서 에 따르면 :
time.clock ()
유닉스에서는 현재 프로세서 시간을 부동 소수점 숫자 (초)로 반환합니다. “프로세서 시간”의 의미에 대한 정확성과 정의는 같은 이름의 C 함수의 정밀도에 달려 있지만, 어쨌든 이것은 파이썬 또는 타이밍 알고리즘을 벤치마킹하는 데 사용하는 함수입니다.
Windows에서이 함수는 Win32 함수 QueryPerformanceCounter ()를 기반으로이 함수에 대한 첫 번째 호출 이후 경과 된 벽시계 초를 부동 소수점 숫자로 리턴합니다. 해상도는 일반적으로 1 마이크로 초보다 낫습니다.
또한, 코드 스 니펫 벤치마킹을위한 timeit 모듈이 있습니다.
답변
짧은 대답은 : 대부분의 시간 time.clock()
이 더 나을 것입니다. 그러나 일부 하드웨어 (예 : GPU에 넣은 알고리즘)의 타이밍 time.clock()
을 지정하는 경우이 시간을 없애고 time.time()
유일한 해결책입니다.
참고 : 어떤 방법을 사용하든 타이밍은 제어 할 수없는 요인 (프로세스 전환시기, 빈도 등)에 따라 달라집니다.이 경우에는 나빠지지만와 함께 time.time()
존재 time.clock()
하므로 타이밍 테스트를 한 번만 실행해서는 안됩니다. 항상 일련의 테스트를 수행하고 시간의 평균 / 변동을 살펴보십시오.
답변
기타 : 재 대답 한 time.time()
대 time.clock()
.
그러나 벤치마킹 / 프로파일 링 목적으로 코드 블록의 실행을 타이밍하는 경우 timeit
모듈을 살펴 봐야 합니다 .
답변
명심해야 할 사항 : 시스템 시간 변경은에 영향을 time.time()
주지만 그렇지 않습니다 time.clock()
.
자동 테스트 실행을 제어해야했습니다. 테스트 케이스의 한 단계가 주어진 시간보다 오래 걸리면 해당 TC는 다음 단계로 진행되지 않았습니다.
그러나 때때로 테스트 할 응용 프로그램의 스케줄러 모듈을 확인하기 위해 시스템 시간을 변경하는 단계가 필요했기 때문에 나중에 시스템 시간을 몇 시간 설정 한 후 TC 시간 초과가 만료되어 테스트 사례가 중단되었습니다. 나는 전환했다 time.time()
에 time.clock()
적절하게이 문제를 처리하는.
답변
clock()
-> 부동 소수점 수
프로세스 시작 이후 또는에 처음 호출 한 이후의 CPU 시간 또는 실시간을 반환합니다 clock()
. 이것은 시스템 기록만큼이나 정밀합니다.
time()
-> 부동 소수점 수
Epoch 이후 현재 시간을 초 단위로 반환하십시오. 시스템 시계가 제공하는 경우 1 초의 분수가 표시 될 수 있습니다.
time()
운영 체제는 프로세스 실행 시간을 시스템 시간 (예 : 실제 시간)을 저장하는 정밀도로 저장하지 않기 때문에 일반적 으로 더 정확합니다.
답변
당신이 관심있는 것에 달려 있습니다. 벽면 시계의 시간과 같이 WALL TIME을 의미하는 경우 time.clock ()은 CPU 시간을 관리 할 수 있으므로 정확도를 제공하지 않습니다.
답변
time()
clock()
Linux 보다 정확도가 높습니다 . clock()
정밀도는 10ms 미만입니다. 하지만이 time()
지사 정밀도를 제공합니다. 내 테스트는 CentOS 6.4, python 2.6에 있습니다.
using time():
1 requests, response time: 14.1749382019 ms
2 requests, response time: 8.01301002502 ms
3 requests, response time: 8.01491737366 ms
4 requests, response time: 8.41021537781 ms
5 requests, response time: 8.38804244995 ms
using clock():
1 requests, response time: 10.0 ms
2 requests, response time: 0.0 ms
3 requests, response time: 0.0 ms
4 requests, response time: 10.0 ms
5 requests, response time: 0.0 ms
6 requests, response time: 0.0 ms
7 requests, response time: 0.0 ms
8 requests, response time: 0.0 ms