시간 측정 정확도와 관련된 Linux 패치?

시간 측정 정확도와 관련된 Linux 패치?

(사용자가 아닌 시스템) 프로세스 시간 정확도를 다루는 Linux 커널용 패치 세트가 있습니까?

RTLinux에 대해 들어본 적이 있지만 실제로는 실제 실시간 스케줄링 제약이 필요하지 않으며 정확한 시간 측정만 필요합니다. 프로세스 스위치가 몇 밀리초 정도 미끄러지면 그럴 수 있지만 현재 프로세스에 소요되는 실제 시간을 정확하게 측정해야 합니다.

답변1

time내장 셸을 사용하려는 경우 다음에 따라 3자리 정밀도가 설계 한계입니다 man bash.

TIMEFORMAT
          The value of this parameter is used as a format string  specify‐
          ing  how  the timing information for pipelines prefixed with the
          time reserved word should be displayed.  The % character  intro‐
          duces  an  escape  sequence  that is expanded to a time value or
          other information.  The escape sequences and their meanings  are
          as follows; the braces denote optional portions.
          %%        A literal %.
          %[p][l]R  The elapsed time in seconds.
          %[p][l]U  The number of CPU seconds spent in user mode.
          %[p][l]S  The number of CPU seconds spent in system mode.
          %P        The CPU percentage, computed as (%U + %S) / %R.

          The  optional  p is a digit specifying the precision, the number
          of fractional digits after a decimal point.  A value of 0 causes
          no decimal point or fraction to be output.  At most three places
          after the decimal point may be specified; values  of  p  greater
          than  3 are changed to 3.  If p is not specified, the value 3 is
          used.

~을 위한~인 것 같다보다 정확한 측정을 위해 사용자 date정의 출력 형식을 사용하여 나노초를 표시해 볼 수 있습니다.

Tstart=$(date "+%s.%N")
some_command(s)
Tend=$(date "+%s.%N")
echo "Elapsed: $( Tend-Tstart |bc -l) nanoseconds"

하지만, 두 경우 모두( timedate) 시스템이 시작/중지 명령을 실행하는 데 시간이 걸리기 때문에 약간의 오버헤드가 발생한다는 점에 유의하세요. time내장형이므로 오버헤드가 적습니다. 따라서 3자리 제한이 있는 데에는 이유가 있습니다. 나머지는 임의의 쓰레기일 뿐입니다.

당신은 또한 볼 수 있습니다이 비슷한 질문, 현재 허용되는 답변에는 작은 버그가 포함되어 있습니다.

관련 정보