Como posso medir o tempo de execução de um processo de terminal?

118

Estou tentando medir o tempo de execução de um processo que chamo por meio da linha de comando (ou seja, quero descobrir quanto tempo leva para o processo terminar). Existe algum comando que eu possa adicionar ao comando chamando o processo que vai conseguir isso?

    
por htorque 17.07.2011 / 14:26
fonte

5 respostas

142

Adicione time antes do comando que você deseja medir.

A saída será parecida com:

real    0m0.606s
user    0m0.000s
sys     0m0.002s

Explicação sobre real , user e sys (de man time ):

  • real : Tempo real gasto (relógio de parede) usado pelo processo, em segundos.
  • user : Número total de segundos de CPU que o processo usou diretamente (no modo de usuário), em segundos.
  • sys : Número total de segundos de CPU usados pelo sistema em nome do processo (no modo kernel), em segundos.
por ninjalj 17.07.2011 / 14:30
fonte
30

Para uma medição delta linha-a-linha, tente gnomon .

  

É um utilitário de linha de comando, um pouco como o ts de moreutils, para pré-adicionar informações de timestamp à saída padrão de outro comando. Útil para processos de longa duração em que você gostaria de ter um registro histórico do que está demorando tanto.

     

Pipar qualquer coisa para o gnomon irá preceder um timestamp para cada linha, indicando quanto tempo essa linha foi a última linha no buffer - isto é, quanto tempo demorou para a próxima linha aparecer. Por padrão, o gnomon mostrará os segundos decorridos entre cada linha, mas isso é configurável.

    
por Janus Troelsen 27.07.2016 / 12:45
fonte
21

Você pode usar time :

time ls -R
    
por William Niu 17.07.2011 / 14:30
fonte
5
date +"%T" && cp -r ./file  /destination/folder/here && date +"%T"

Executar este comando no terminal lhe dará o tempo total para lidar com um arquivo

    
por user314473 11.08.2014 / 07:20
fonte
3

Ocasionalmente me vejo precisando de um cronômetro para contar quanto tempo leva para uma ação como a inicialização do meu aplicativo, nesse caso muitas das soluções aqui não são úteis.

Para isso, gosto de usar sw .

Instalar

wget -q -O - http://git.io/sinister | sh -s -- -u https://raw.githubusercontent.com/coryfklein/sw/master/sw

Uso

sw
 - start a stopwatch from 0, save start time in ~/.sw
sw [-r|--resume]
 - start a stopwatch from the last saved start time (or current time if no last saved start time exists)
 - "-r" stands for --resume
    
por Cory Klein 23.06.2017 / 23:11
fonte