Introduzione

Il comando time viene utilizzato per determinare quanto tempo richiede l'esecuzione di un determinato comando. È utile per testare le prestazioni degli script e dei comandi.

Ad esempio, se hai due diversi script che fanno lo stesso lavoro e vuoi sapere quale funziona meglio puoi usare il comando time di Linux per determinare la durata dell'esecuzione di ogni script.

Il comando Time

Sia Bash che Zsh, le shell Linux più utilizzate hanno le loro versioni integrate del comando time che hanno la precedenza sul comando time di Gnu.

È possibile utilizzare il comando type per determinare se time è una parola chiave binaria o incorporata.

type time
# Bash
time is a shell keyword

# Zsh
time is a reserved word

# GNU time (sh)
time is /usr/bin/time

Per utilizzare il comando Gnu time, è necessario specificare il percorso completo del binario di time, in genere /usr/bin/time, utilizzare il comando env o utilizzare una barra rovesciata iniziale \time che impedisce l'utilizzo di entrambi e incorporati.

Il tempo di Gnu consente di formattare l'output e fornisce altre informazioni utili come I/O di memoria e chiamate IPC.

Usare il comando Time su Linux

Nel seguente esempio, misureremo il tempo impiegato per scaricare il kernel Linux usando lo strumento wget :

time wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.9.tar.xz

Cosa verrà stampato come output dipende dalla versione del comando time che stai usando:

# Bash
HTTP request sent, awaiting response... 200 OK
Length: 103135232 (98M) [application/x-xz]
Saving to: ‘linux-4.19.9.tar.xz’

linux-4.19.9.tar.xz                                 100%[===================================================================================================================>]  98.36M   105MB/s    in 0.9s

2020-02-01 15:34:54 (105 MB/s) - ‘linux-4.19.9.tar.xz’ saved [103135232/103135232]


real    0m6.866s
user    0m0.124s
sys     0m0.576s
  • real, total o elapsed è il tempo dall'inizio alla fine della chiamata. Dal momento in cui premi il tasto Enter fino al momento in cui il comando wget è completato.
  • user - quantità di tempo della CPU trascorso in modalità utente.
  • system o sys - quantità di tempo CPU trascorso in modalità kernel.

Conclusione

Ormai dovresti avere una buona conoscenza di come usare il comando time. Se vuoi saperne di più sul comando Gnu time visita la pagina man di time.