GNU/Linux >> Tutoriels Linux >  >> Linux

Quelle est l'unité de temps utilisée par strace pour afficher le temps passé dans les appels système ?

À partir du code source :

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

Cela signifie que le temps est affiché en secondes, avec des microsecondes (calculées à partir de la valeur de la nanoseconde) après la virgule décimale.


Si vous courez

strace -T  sleep 2

vous verrez

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

il semble donc que le temps passé soit en secondes.


Si vous exécutez la commande strace en utilisant le "drapeau -c", il vous montrera un tableau et le temps est rapporté en secondes :

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

de l'homme de strace

-c

Comptez le temps, les appels et les erreurs pour chaque appel système et rapportez un résumé à la sortie du programme. Sous Linux, cela tente d'afficher l'heure système (temps CPU passé à s'exécuter dans le noyau) indépendamment de l'heure de l'horloge murale. Si -c est utilisé avec -f ou -F (ci-dessous), seuls les totaux agrégés pour tous les processus tracés sont conservés.


Linux
  1. Que se passe-t-il lorsque j'exécute la commande Cat /proc/cpuinfo ?

  2. Quelles sont les utilisations légitimes de la commande "touch" ?

  3. Linux – Comment mesurer le temps d'arrivée d'un paquet ?

  4. Tune2fs :dans quel fuseau horaire la date est-elle créée et est-il possible de la modifier ?

  5. Quels systèmes de fichiers sous Linux stockent l'heure de création ?

À quand remonte la dernière fois que vous avez utilisé Windows ?

Bash-insulter - Un script qui insulte l'utilisateur lorsqu'il tape une mauvaise commande

Quelle est l'unité de taille par défaut dans la commande Linux ls -l

Chronométrer le temps d'exécution de plusieurs commandes

Comment contrôler le temps que les utilisateurs passent sur

Que signifient exactement les couleurs dans les barres d'état htop ?