Quais são as diferenças entre a hora do relógio de parede, o tempo do usuário e o tempo da CPU?

11

Estamos executando trabalhos de computação com o GridEngine. Todos os trabalhos retornam 3 vezes diferentes:

  • Hora do relógio de parede
  • Horário do usuário
  • Tempo de CPU

Quais são as diferenças entre esses três? Qual desses três é mais adequado para comparar o desempenho de dois aplicativos / scripts

    
por Peter Smit 31.07.2009 / 10:08

2 respostas

13

Tempo do relógio de parede é o tempo real gasto para realizar um trabalho. Isso equivale a cronometrar seu trabalho com um cronômetro e o tempo medido para concluir sua tarefa pode ser afetado por qualquer outra coisa que o sistema esteja fazendo no momento.

O tempo do usuário mede a quantidade de tempo que a CPU gastou executando seu código. Isso não conta mais nada que possa estar em execução e também não conta o tempo de CPU gasto no kernel (como no arquivo I / O).

O tempo de CPU mede o tempo total que a CPU gastou executando seu código ou qualquer coisa solicitada pelo seu código. Isso inclui o tempo do kernel.

A medida "Tempo do usuário" é provavelmente a mais adequada para medir o desempenho de trabalhos diferentes, já que será menos afetada por outras coisas que acontecem no sistema.

    
por 31.07.2009 / 10:16
3

Da Wikipedia:

The term 'user CPU time' can be a bit misleading at first. To be clear the total time (real CPU time), is the combination of the amount of time the CPU spends performing some action for a program and the amount of time the CPU spends performing system calls for the kernel on the program's behalf. When a program loops through an array, it is accumulating user CPU time. Conversely, when a program executes a system call such as exec or fork, it is accumulating system CPU time

Wall clock time is the actual time taken by a computer to complete a task. It is the sum of three terms: CPU time, I/O time, and the communication channel delay (e.g. if data are scattered on multiple machines). In contrast to CPU time, which measures only the time during which the processor is actively working on a certain task, wall time measures the total time for the process to complete. The difference between the two consists of time that passes due to programmed delays or waiting for resources to become available.

    
por 31.07.2009 / 10:19

Tags