Quelles sont les différences entre l'heure de l'horloge murale, l'heure de l'utilisateur et l'heure du processeur

14

Nous exécutons des tâches informatiques avec GridEngine. Chaque tâche revient 3 fois:

  • Horloge murale
  • Temps utilisateur
  • Temps CPU

Quelles sont les différences entre ces trois? Lequel de ces trois est le plus approprié pour comparer les performances de deux applications / scripts

Peter Smit
la source

Réponses:

18

Le temps de l'horloge murale est le temps réel nécessaire pour effectuer un travail. Cela équivaut à chronométrer votre travail avec un chronomètre et le temps mesuré pour terminer votre tâche peut être affecté par tout ce que le système fait à ce moment-là.

Le temps utilisateur mesure le temps passé par le processeur à exécuter votre code. Cela ne compte rien d'autre qui pourrait être en cours d'exécution, et ne compte pas non plus le temps CPU passé dans le noyau (comme pour les E / S de fichiers).

Le temps processeur mesure le temps total passé par le processeur à exécuter votre code ou tout autre élément demandé par votre code. Cela inclut le temps du noyau.

La mesure du «temps utilisateur» est probablement la plus appropriée pour mesurer les performances de différents travaux, car elle sera moins affectée par d'autres événements survenant sur le système.

Greg Hewgill
la source
3

De Wikipédia:

Le terme «temps CPU de l'utilisateur» peut être un peu trompeur au début. Pour être clair, le temps total (temps réel du CPU) est la combinaison du temps que le CPU passe à effectuer une action pour un programme et du temps que le CPU passe à effectuer des appels système pour le noyau au nom 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

Le temps de l'horloge murale est le temps réel pris par un ordinateur pour effectuer une tâche. Il s'agit de la somme de trois termes: temps CPU, temps E / S et retard du canal de communication (par exemple si les données sont dispersées sur plusieurs machines). Contrairement au temps CPU, qui ne mesure que le temps pendant lequel le processeur travaille activement sur une certaine tâche, le temps de mur mesure le temps total pour que le processus se termine. La différence entre les deux se compose du temps qui s'écoule en raison de retards programmés ou de l'attente de la disponibilité des ressources.

Maxwell
la source