Яку одиницю часу використовує страйк під час відображення часу, проведеного в системних дзвінках?


10

Використовуючи команду straceз прапором -T, я хотів би знати, яка одиниця часу використовується для відображення часу, проведеного в систематичних дзвінках? Я припускаю, що це повинно бути за лічені секунди, але я не зовсім впевнений, і це, здається, у керівництві опущено.

Відповіді:


23

Із вихідного коду :

if (Tflag) {
    ts_sub(ts, ts, &tcp->etime);
    tprintf(" <%ld.%06ld>",
        (long) ts->tv_sec, (long) ts->tv_nsec / 1000);
}

Це означає, що час відображається в секундах з мікросекундами (обчислюється із значення наносекунди) після десяткової крапки.


13

Якщо ти біжиш

strace -T  sleep 2

ти побачиш

nanosleep({tv_sec=2, tv_nsec=0}, NULL)  = 0 <2.000230>

тому, схоже, витрачений час у секундах.


6

Якщо ви запустите команду straceза допомогою "flag -c", вона покаже вам таблицю, а час повідомляється в секундах :

strace -c -p 3569 # 3569 is PID
strace: Process 3569 attached
^Cstrace: Process 3569 detached
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
99.73    0.016000           8      1971           poll
0.16    0.000025           0       509        75 futex
0.06    0.000010           0      1985      1966 recvmsg
0.06    0.000009           0      2336           mprotect
0.00    0.000000           0       478           read
0.00    0.000000           0        13           write
0.00    0.000000           0        29           mmap
0.00    0.000000           0         9           munmap
0.00    0.000000           0        18           writev
0.00    0.000000           0       351           madvise
0.00    0.000000           0         1           restart_syscall
------ ----------- ----------- --------- --------- ----------------
100.00    0.016044                  7700      2041 total

від людини страйса

-c

Підраховуйте час, дзвінки та помилки для кожного системного виклику та повідомте підсумки про вихід програми. В Linux це намагається показати системний час (час процесора, витрачений на виконання ядра) незалежно від часу настінного годинника. Якщо -c використовується з -f або -F (нижче), зберігаються лише сукупні підсумки для всіх простежених процесів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.