Come posso misurare il tempo di esecuzione di un processo terminale?

124

Sto provando a misurare il tempo di esecuzione di un processo che chiamo tramite la riga di comando (cioè, voglio scoprire quanto tempo ci vuole affinché il processo finisca). C'è qualche comando che posso aggiungere al comando chiamando il processo che otterrà questo?

    
posta htorque 17.07.2011 - 14:26
fonte

5 risposte

155

Aggiungi time prima del comando che desideri misurare.

L'output sarà simile a:

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

Spiegazione su real , user e sys (da man time ):

  • real : tempo reale trascorso (orologio a muro) utilizzato dal processo, in secondi.
  • user : numero totale di CPU-secondi che il processo ha utilizzato direttamente (in modalità utente), in secondi.
  • sys : numero totale di secondi CPU utilizzati dal sistema per conto del processo (in modalità kernel), in secondi.
risposta data ninjalj 17.07.2011 - 14:30
fonte
32

Per una misurazione delta riga per riga, prova gnomon .

  

È un'utilità della riga di comando, un po 'come quella di moreutils, per anteporre le informazioni di timestamp allo standard output di un altro comando. Utile per processi di lunga durata in cui desideri un record storico di ciò che sta richiedendo così tanto tempo.

     

Il piping di qualsiasi cosa su gnomon antepone un timestamp a ciascuna riga, indicando per quanto tempo quella linea era l'ultima riga nel buffer, ovvero quanto tempo impiegava la riga successiva a comparire. Per impostazione predefinita, gnomon mostrerà i secondi trascorsi tra ogni linea, ma ciò è configurabile.

    
risposta data Janus Troelsen 27.07.2016 - 12:45
fonte
22

Puoi utilizzare time :

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

L'esecuzione di questo comando nel terminale ti darà il tempo totale per copiare un file

    
risposta data user314473 11.08.2014 - 07:20
fonte
4

Occasionalmente mi trovo a dover utilizzare un cronometro per contare quanto tempo ci vuole per un'azione come l'avvio della mia app, nel qual caso molte delle soluzioni qui non sono utili.

Per questo mi piace usare sw .

install

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
    
risposta data Cory Klein 23.06.2017 - 23:11
fonte

Leggi altre domande sui tag