2014-05-18 2 views
2

time.clock()이 잘못된 결과를 제공합니까?왜 time.clock()이 잘못된 결과를 반환합니까?

5.00506210327 
0.006593 

두번째 5.0이어야하지만 이유는 0.006이다

time_start1 = time.time() 
time.sleep(5) 
bb = time.time() - time_start1; 
print bb; 
time_1 = time.clock() 
time.sleep(5) 
cc = time.clock() - time_1 
print cc 

결과는 다음과 같이 코드는? 내 OS는 우분투 14.04LTS 64 비트입니다. 내 IDLE 버전은 2.7.6입니다.

감사합니다.

+0

관련 : http://stackoverflow.com/questions/19523874/unexpected-output-of-python-time-clock – alecxe

+2

'time.clock ()'우분투에서는 신뢰할 수 없습니다. – sshashank124

+0

시간 값을 인쇄하지 않는 이유는 무엇입니까? 어쩌면 당신은 찾을거야 – aIKid

답변

11

time.time()time.clock()은 다른 것들을 측정하고 있습니다.

time.time()은 유닉스 시대부터 벽시계 경과 시간을 측정합니다.

Linux 시스템의 경우 time.clock()프로세서 시간입니다.이 값은 경과 된 시간 (초)이 아닙니다.

프로세서 시간 (time.clock() 리눅스 시스템을 만든다 운영 체제에 기본 통화 인) clockman 페이지에 정의 된대로 해당 코드를 실행하는 프로세서에 의해 소요 된 많은 시간의 근사치입니다.

파이썬 소스 : https://docs.python.org/2/library/time.html

클럭 소스 : http://linux.die.net/man/3/clock

+0

그럼 .. 프로세서 시간은 무엇입니까? 어떻게 그렇게 다른가? – aIKid

+0

업데이트 됨. 그것은 얼마나 많은 CPU 시간이 사용되었는지입니다. – Leigh

+0

전화와 관련이 있습니다. – aIKid

3

Linux 시스템의 경우 time.clock()은 예상 시간이 아닌 프로세서 시간을 반환합니다.

time.time()은 신기원 이후로 벽 시계 경과 시간을 측정하며, Linux 시스템에서는 time.clock()이 프로세서 시간을 측정합니다. the sources 가입일

>>> x = time.clock() 
>>> time.sleep(1) 
>>> print time.clock()-x 
0.001644 
>>> 

: 유닉스에서

는 초 단위 부동 소수점 수로 현재 프로세서 시간을 반환한다. 실제로 "프로세서 시간"의 의미에 대한 정밀도와 정의는 같은 이름의 C 함수의 정의에 달려 있지만 어떤 경우이든이 함수는 Python이나 타이밍 알고리즘을 벤치마킹하는 데 사용하는 함수입니다.

관련 문제