GNU 시간을 사용하여 밀리초 인쇄

GNU 시간을 사용하여 밀리초 인쇄

저는 GNU Time을 사용하여 벤치마킹 중이며 실시간, 사용자 시간 및 시스템 시간을 밀리초 단위까지 측정하고 싶습니다. 즉, 기본 2자리가 아닌 소수점 이하 3자리까지 초를 측정하고 싶습니다. GNU 시간은 그러한 옵션을 제공합니까?

답변1

당신은 할 수없는 것 같습니다매뉴얼 페이지실제로 다양한 형식 옵션이 나열되어 있지만 설정의 정확성에 대한 규정은 없습니다. 예를 들어, %e%S%U항상 소수점 이하 두 자리까지 출력하는 것 같습니다.

반면, Bash의 내장 기능은 time소수점 이하 자릿수 설정을 최대 3자리까지 지원하므로 이를 사용하여 원하는 결과를 얻을 수 있습니다. 환경 TIMEFORMAT변수는 출력 형식을 제어합니다.

$ TIMEFORMAT='real: %3R user: %3U sys: %3S cpu: %P' bash -c 'time sleep 1.233'
real: 1.234 user: 0.000 sys: 0.000 cpu: 0.00

TIMEFORMAT또는 기본 출력에도 세 자리 숫자가 표시되므로 설정하지 않은 채로 두십시오 . 그러나 분은 분리됩니다.

$ bash -c 'time sleep 1.233'

real    0m1.234s
user    0m0.000s
sys     0m0.000s

이것getrusage()시스템 호출주어진 시간은 struct timeval최대 마이크로초이므로 더 나은 정확도를 위해 직접 구현할 수 있을 것 같습니다 time. 또 다른 것은 이 숫자가 실제로 얼마나 정확한지입니다.

관련 정보