Come usare il comando time su Linux

PC Linux con una finestra di terminale aperta

Fatmawati Achmad Zaenuri/Shutterstock.com



Vuoi sapere quanto dura un processo e molto altro ancora? Il Linux |_+_| Il comando restituisce le statistiche temporali, offrendoti interessanti informazioni sulle risorse utilizzate dai tuoi programmi.

il tempo ha molti parenti

Esistono molte distribuzioni Linux e diversi sistemi operativi simili a Unix. Ognuno di questi ha una shell di comando predefinita. La shell predefinita più comune nelle moderne distribuzioni Linux è la shell bash. Ma ce ne sono molti altri, come il guscio Z (zsh) e il guscio Korn (ksh).





Tutte queste shell incorporano il proprio |_+_| comando, sia come a integrato comando o come a parola riservata . Quando digiti |_+_| in una finestra di terminale la shell eseguirà il suo comando interno invece di usare GNU |_+_| binario fornito come parte della tua distribuzione Linux.

Vogliamo usare la versione GNU di |_+_| perché ha di più opzioni ed è più flessibile.



A che ora verrà eseguito?

Puoi controllare quale versione verrà eseguita usando |_+_| comando. |_+_| ti farà sapere se la shell gestirà la tua istruzione da sola, con le sue routine interne, o se la passerà al binario GNU.

Annuncio pubblicitario

in una finestra di terminale digita la parola |_+_|, uno spazio e poi la parola |_+_| e premi Invio.

time

digita l



Possiamo vederlo nella shell bash |_+_| è una parola riservata. Ciò significa che Bash utilizzerà il suo interno|_+_| routine per impostazione predefinita.

time

digita l

Nella shell Z (zsh) |_+_| è una parola riservata, quindi le routine interne della shell verranno utilizzate per impostazione predefinita.

time

digita l

Nel guscio Korn |_+_| è una parola chiave. Verrà utilizzata una routine interna al posto di GNU |_+_| comando.

IMPARENTATO: Che cos'è ZSH e perché dovresti usarlo al posto di Bash?

Esecuzione del comando GNU time

Se la shell sul tuo sistema Linux ha un |_+_| . interno routine dovrai essere esplicito se desideri utilizzare GNU |_+_| binario. Devi:

  • Fornisci l'intero percorso al binario, ad esempio |_+_|. Esegui |_+_| comando per trovare questo percorso.
  • Usa |_+_|.
  • Usa una barra rovesciata come |_+_|.

Il |_+_| Il comando ci fornisce il percorso del binario.

Annuncio pubblicitario

Possiamo testarlo usando |_+_| come comando per avviare il binario GNU. Che funzioni. Riceviamo una risposta dal |_+_| comando che ci dice che non abbiamo fornito alcun parametro della riga di comando su cui lavorare.

Digitando |_+_| funziona anche e otteniamo le stesse informazioni sull'utilizzo da |_+_|. Il |_+_| comando dice alla shell di ignorare il comando successivo in modo che venga elaborato al di fuori della shell.

Usando un |_+_| carattere prima del nome del comando è lo stesso che usare |_+_| prima del nome del comando.

Il modo più semplice per assicurarti di utilizzare GNU |_+_| binario consiste nell'utilizzare l'opzione barra rovesciata.

time time

|_+_| invoca il conchiglia versione del tempo. |_+_| usa il |_+_| binario .

Uso del comando orario

Diamo il tempo ad alcuni programmi. Stiamo usando due programmi chiamati |_+_| e |_+_|. Sono stati creati da loop1.c e loop2.c. Non fanno nulla di utile oltre a dimostrare gli effetti di un tipo di inefficienza di codifica.

Annuncio pubblicitario

Questo è loop1.c. La lunghezza di una stringa è richiesta all'interno dei due cicli annidati. La lunghezza è ottenuta in anticipo, al di fuori dei due loop annidati.

type

Questo è loop2.c. La lunghezza della stringa si ottiene di volta in volta per ogni ciclo del loop esterno. Questa inefficienza dovrebbe manifestarsi nei tempi.

type

Accendiamo |_+_| programma e usa |_+_| per misurarne le prestazioni.

type

Ora facciamo lo stesso per |_+_|.

time

Questo ci ha dato due serie di risultati, ma sono in un formato davvero brutto. Possiamo fare qualcosa al riguardo in seguito, ma scegliamo alcune informazioni dai risultati.

Quando i programmi vengono eseguiti ci sono due modalità di esecuzione tra cui vengono scambiati avanti e indietro. Questi sono chiamati modalità utente e modalità kernel .

In breve, un processo in modalità utente non può accedere direttamente all'hardware o alla memoria di riferimento al di fuori della propria allocazione. Per ottenere l'accesso a tali risorse, il processo deve effettuare richieste al kernel. Se il kernel approva la richiesta, il processo entra in esecuzione in modalità kernel fino a quando il requisito non è stato soddisfatto. Il processo viene quindi riportato all'esecuzione in modalità utente.

Annuncio pubblicitario

I risultati per |_+_| dicci che |_+_| trascorso 0,09 secondi in modalità utente. Ha trascorso zero tempo in modalità kernel o il tempo in modalità kernel è un valore troppo basso per essere registrato una volta arrotondato per difetto. Il tempo totale trascorso è stato di 0,1 secondi. |_+_| ha ottenuto in media l'89% del tempo CPU per tutta la durata del tempo totale trascorso.

L'inefficiente |_+_| il programma ha impiegato tre volte di più per essere eseguito. Il suo tempo totale trascorso è di 0,3 secondi. La durata del tempo di elaborazione in modalità utente è di 0,29 secondi. Niente si sta registrando per la modalità kernel. |_+_| ha ottenuto in media il 96% del tempo della CPU per la durata della sua esecuzione.

Formattazione dell'output

Puoi personalizzare l'output da |_+_| utilizzando una stringa di formato. La stringa di formato può contenere testo e identificatori di formato. L'elenco degli identificatori di formato può essere trovato nella pagina man per |_+_|. Ciascuno degli identificatori di formato rappresenta un'informazione.

Quando la stringa viene stampata, gli identificatori di formato vengono sostituiti dai valori effettivi che rappresentano. Ad esempio, l'identificatore di formato per la percentuale di CPU è la lettera |_+_| . Indicare a |_+_| che un identificatore di formato non è solo una lettera normale, aggiungi un segno di percentuale, come |_+_| . Usiamolo in un esempio.

Il |_+_| (stringa di formato) è usata per dire |_+_| che ciò che segue è una stringa di formato.

La nostra stringa di formato stamperà i caratteri Program: e il nome del programma (e qualsiasi parametro della riga di comando che passi al programma). Il |_+_| identificatore di formato sta per Nome e argomenti della riga di comando del comando che viene cronometrato. Il |_+_| fa sì che l'output si sposti alla riga successiva.

Annuncio pubblicitario

Esistono molti identificatori di formato e fanno distinzione tra maiuscole e minuscole, quindi assicurati di inserirli correttamente quando lo fai da solo.

Successivamente, stamperemo i caratteri Tempo totale: seguito dal valore del tempo totale trascorso per questa esecuzione del programma (rappresentato da |_+_|).

Usiamo |_+_| per dare un'altra nuova linea. Quindi stamperemo i caratteri User Mode (s) , seguiti dal valore del tempo della CPU trascorso in modalità utente, indicato da |_+_|.

Usiamo |_+_| per dare un'altra nuova linea. Questa volta ci stiamo preparando per il valore dell'ora del kernel. Stampiamo i caratteri Kernel Mode (s) , seguiti dall'identificatore di formato per il tempo della CPU trascorso in modalità kernel, che è |_+_|.

Infine, stamperemo i caratteri |_+_|CPU: per darci una nuova riga e il titolo per questo valore di dati. Il |_+_| L'identificatore di formato fornirà la percentuale media del tempo CPU utilizzato dal processo a tempo.

L'intera stringa di formato è racchiusa tra virgolette. Avremmo potuto includere alcuni |_+_| caratteri per inserire tabulazioni nell'output se fossimo pignoli sull'allineamento dei valori.

time

Invio dell'output a un file

Per tenere traccia dei tempi dei test che hai effettuato puoi inviare l'output da |_+_| a un file. Per fare ciò usa il |_+_| (uscita) opzione. L'output del tuo programma verrà comunque visualizzato nella finestra del terminale. È solo l'output di |_+_| che viene reindirizzato al file.

Annuncio pubblicitario

Possiamo rieseguire il test e salvare l'output in |_+_| file come segue:

time time

Il |_+_| l'output del programma viene visualizzato nella finestra del terminale e i risultati di |_+_| vai al |_+_| file.

Se vuoi catturare il prossimo set di risultati nello stesso file, devi usare |_+_| (aggiungi) l'opzione come segue:

time time

Dovrebbe ora essere chiaro il motivo per cui abbiamo usato |_+_| identificatore di formato per includere il nome del programma nell'output della stringa di formato.

E siamo fuori tempo

Probabilmente di maggior utilità per programmatori e sviluppatori per mettere a punto il loro codice, il |_+_| comando è utile anche per chiunque voglia scoprire qualcosa in più su ciò che accade sotto il cofano ogni volta che si avvia un programma.

Comandi Linux
File catrame · pv · gatto · tac · chmod · presa · differenza · sed · Con · uomo · spinto · popd · fsck · testdisk · seguito · fd · pandoc · cd · $PATH · awk · giuntura · jq · piega · unico · journalctl · coda · stato · ls · fstab · buttato fuori · meno · chgrp · chown · rev · Guarda · stringhe · genere · rinominare · cerniera lampo · decomprimere · montare · smontare · installare · fdisk · mkfs · rm · rmdir · rsync · df · gpg · noi · nano · mkdir · a partire dal · ln · toppa · convertire · rclone · brandello · SRM
Processi alias · schermo · superiore · Bello · renice · progresso · strace · sistema · tmux · chsh · storia · in · lotto · libero · quale · dmesg · usermod · ps · chroot · xargs · tty · mignolo · lsof · vmstat · tempo scaduto · parete · · uccisione · dormire · sudo · il suo · volta · gruppoaggiungi · usermod · gruppi · lshw · spegnimento · riavviare · fermare · spegni · passwd · lscpu · crontab · Data · bg · fg
Rete netstat · ping · traceroute · ip · ss · chi è · fail2ban · bmon · voi · dito · nmap · ftp · arricciare · wget · chi · chi sono · In · iptables · ssh-keygen · ufw

IMPARENTATO: I migliori laptop Linux per sviluppatori e appassionati

LEGGI SUCCESSIVO
  • › Funzioni e formule in Microsoft Excel: qual è la differenza?
  • › La cartella del computer è 40: come la star di Xerox ha creato il desktop
  • › Come trovare il tuo Spotify Wrapped 2021
  • & rsaquo; Cyber ​​Monday 2021: le migliori offerte tecnologiche
  • › 5 siti Web che ogni utente Linux dovrebbe aggiungere ai segnalibri
  • › Che cos'è la protezione anticaduta MIL-SPEC?
Foto del profilo di Dave McKay Dave McKay
Dave McKay ha usato per la prima volta i computer quando era in voga il nastro di carta perforata, e da allora ha programmato. Dopo oltre 30 anni nel settore IT, ora è un giornalista tecnologico a tempo pieno. Durante la sua carriera ha lavorato come programmatore freelance, manager di un team internazionale di sviluppo software, project manager di servizi IT e, più recentemente, come Data Protection Officer. I suoi scritti sono stati pubblicati da howtogeek.com, cloudavvyit.com, itenterpriser.com e opensource.com. Dave è un evangelista di Linux e un sostenitore dell'open source.
Leggi la biografia completa

Articoli Interessanti