O que é “hora do sistema” ao usar o “tempo” na linha de comando

8

Estou usando time para cronometrar um script Perl no terminal padrão no Ubuntu 14.04.

Eu tenho read que real time é o tempo de cronômetro; o tempo que eu, como usuário, estou gastando olhando para o programa em execução, eu inicio o programa até que ele termine. Mas eu não entendo o que são user ou sys vezes. A página man em time é vaga, para dizer o mínimo.

Embora seja um pouco claro que o tempo real está dividido entre user e sys , não está claro o que eles representam.

No meu script, estou comparando [1] o C ++ e o Perl para ver a diferença, e gostaria de saber quais dados estou realmente obtendo. Um exemplo de saída é:

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

Alguém poderia, por favor, elaborar o que o formato padrão de tempo está dizendo ao usuário? Eu sou um novato no Linux, então por favor não assuma muito.

[1] Curiosamente, enquanto o C ++ é muito mais rápido do que o Perl no meu benchmark em relação ao real time, o sys times não difere muito, com o C ++ realmente usando mais sys time Perl. É por isso que quero saber o que eles significam

    
por Alrekr 25.05.2014 / 01:40

1 resposta

14

Em wikipedia :

  • User Time vs System Time

The term 'user CPU time' can be a bit misleading at first. To be clear, the total CPU time is the combination of the amount of time the CPU(s) spent performing some action for a program and the amount of time the CPU(s) spent 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.

  • Real Time vs CPU Time

The term "real time" in this context refers to elapsed "wall clock" time, like using a stop watch. The total CPU time (user time + sys time) may be more or less than that value. Because a program may spend some time waiting and not executing at all (whether in user mode or system mode) the real time may be greater than the total CPU time. Because a program may fork children whose CPU times (both user and sys) are added to the values reported by the time command, the total CPU time may be greater than the real time.

    
por 25.05.2014 / 01:44

Tags