bash 시간이 GNU 시간보다 정확한 이유는 무엇입니까?


12

buitin bash 명령 time은 밀리 초의 실행 정밀도를 제공하며 GNU time(일반적으로 / usr / bin / time)는 센티 초 정밀도를 제공합니다. times(2)콜은 시계의 시간을 제공하고, 클록 (100) = 1 초 (보통), 따라서 정밀도 GNU 같다 time. 문제는 time더 정확하게 bash를 사용하는 것입니다.


흠 ... 그들은 모두 내 시스템에서 밀리 초를 제공 ... (FC16)
니코

이상한. printf ( "% d \ n", sysconf (_SC_CLK_TCK)); 위에서 언급했듯이 100이어야합니다. dirac.org/linux/time 과 비슷한 관찰 결과가 있지만 아직 설명이 없습니다.
Łukasz Sowa

그렇습니다, 실제로 그것은 100을 준다…
nico

그렇다면 왜 그런지 모르겠습니다. GNU 시간은 sysconf (_SC_CLK_TCK)를 사용하여 초로 변환하는 syscall 시간을 사용해야합니다.
Łukasz Sowa

FWIW "bash time" 라고 말할 때 BSD time를 사용 한다고 가정 합니다 getrusage.
Dennis

답변:


16

일부 하드 코어 bash 코드 검사 후 bash time는 사용 getrusage()하고 GNU time는 사용 한다는 것을 알았습니다 times(). getrusage()마이크로 초 분해능으로 인해 훨씬 ​​더 정확합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.