GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è l'unità di tempo utilizzata da strace per visualizzare il tempo trascorso nelle chiamate di sistema?

Dal codice sorgente:

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

Ciò significa che il tempo è mostrato in secondi, con i microsecondi (calcolati dal valore dei nanosecondi) dopo la virgola.


Se corri

strace -T  sleep 2

vedrai

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

quindi sembra che il tempo trascorso sia espresso in secondi.


Se esegui il comando strace usando il "flag -c" ti mostrerà una tabella e il tempo è riportato in secondi :

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

dall'uomo di strace

-c

Conta il tempo, le chiamate e gli errori per ogni chiamata di sistema e riporta un riepilogo all'uscita dal programma. Su Linux, questo tenta di mostrare l'ora di sistema (tempo della CPU speso in esecuzione nel kernel) indipendentemente dall'ora dell'orologio. Se -c è usato con -f o -F (sotto), vengono mantenuti solo i totali aggregati per tutti i processi tracciati.


Linux
  1. Linux:quali file system su Linux archiviano il tempo di creazione?

  2. Cosa succede quando eseguo il comando Cat /proc/cpuinfo?

  3. Cosa succede esattamente quando eseguo un file nella shell?

  4. Quali sono gli usi legittimi del comando `touch`?

  5. Linux:come misurare il tempo in cui arriva un pacchetto?

Quando è stata l'ultima volta che hai usato Windows?

Bash-insulter – Uno script che insulta l'utente quando digita un comando sbagliato

Qual è l'unità di dimensione predefinita nel comando linux ls -l

Time il tempo di esecuzione di più comandi

Come controllare il tempo che gli utenti trascorrono

Cosa significano esattamente i colori nelle barre di stato htop?