Qu'est-ce que «l'heure système» lors de l'utilisation de «l'heure» en ligne de commande

10

J'utilise timepour chronométrer un Perlscript sur un terminal standard dans Ubuntu 14.04.

J'ai lu que real timec'est l'heure du chronomètre; le temps que moi, en tant qu'utilisateur, passe à regarder le programme en cours depuis le démarrage du programme jusqu'à sa fin. Mais je ne comprends pas ce userou syshoraire. La page de manuel sur timeest pour le moins vague.

Bien qu'il soit quelque peu clair que le realtemps est partagé entre useret sysce n'est pas clair ce qu'ils représentent.

Dans mon script, je compare [1] C ++ et Perl l'un à l'autre pour voir la différence, et j'aimerais savoir quelles données je reçois réellement. Un exemple de sortie est:

real    0m24.198s
user    0m23.120s
sys     0m1.030s

Quelqu'un pourrait-il expliquer ce que le format d'heure par défaut indique à l'utilisateur? Je suis novice en Linux, alors s'il vous plaît, ne présumez pas trop.

[1] Fait intéressant, alors que C ++ est bien, beaucoup plus rapide que Perl dans mon benchmark en ce qui concerne le realtemps, les systemps ne diffèrent pas beaucoup, C ++ utilisant en fait plus de systemps que Perl. Voilà pourquoi je veux savoir ce qu'ils signifient

Alrekr
la source

Réponses:

15

De wikipedia :

  • Temps utilisateur vs temps système

Le terme «temps CPU de l'utilisateur» peut être un peu trompeur au début. Pour être clair, le temps CPU total est la combinaison du temps que les CPU ont passé à effectuer une action pour un programme et le temps que les CPU ont passé à exécuter le système appelle le noyau pour le compte du programme. Lorsqu'un programme parcourt un tableau, il accumule du temps CPU utilisateur. Inversement, lorsqu'un programme exécute un appel système tel que exec ou fork, il accumule du temps CPU système.

  • Temps réel vs temps CPU

Dans ce contexte, le terme «temps réel» fait référence au temps «d'horloge murale» écoulé, comme l'utilisation d'un chronomètre. Le temps CPU total (temps utilisateur + temps sys) peut être supérieur ou inférieur à cette valeur. Étant donné qu'un programme peut passer un certain temps à attendre et à ne pas s'exécuter du tout (que ce soit en mode utilisateur ou en mode système), le temps réel peut être supérieur au temps CPU total. Dans la mesure où un programme peut bifurquer des enfants dont les temps CPU (utilisateur et sys) sont ajoutés aux valeurs signalées par la commande time, le temps CPU total peut être supérieur au temps réel.

Konstantinos
la source
1
Je ne comprends pas comment j'ai réussi à ne pas trouver cet article Wikipedia. Je vous remercie.
Alrekr