Qualche tempo fa ho condiviso alcune alternative a "top", l'utilità della riga di comando . Alcuni utenti mi hanno chiesto quale tra questi strumenti è il migliore e su quali basi (come funzionalità, contributori, anni attivi, richieste di pagine ecc.) Ho confrontato quegli strumenti. Mi hanno anche chiesto di condividere i risultati del benchmarking se ne ho. Sfortunatamente, non sapevo come confrontare i programmi in quel momento. Durante la ricerca di alcuni strumenti di benchmarking semplici e facili da usare per confrontare i programmi Linux, mi sono imbattuto in due utilità denominate 'Bench' e 'Iperfine' . Questi sono strumenti da riga di comando semplici e facili da usare per confrontare comandi e programmi Linux su sistemi Linux e simili a Unix.
1. Confronta i comandi e i programmi Linux dalla riga di comando utilizzando lo strumento Bench
La 'panchina' l'utilità esegue il benchmark di uno o più comandi/programmi dati utilizzando il criterio di Haskell libreria e visualizza le statistiche di output in un formato di facile comprensione. Questo strumento può essere utile quando è necessario confrontare programmi simili in base al risultato del benchmarking. Possiamo anche esportare i risultati in formato HTML o CSV o output basato su modelli.
1.1. Installa l'utilità Bench in Linux
L'utility bench può essere installata in tre metodi.
Possiamo installare l'utilità Bench utilizzando il gestore di pacchetti Linuxbrew. Se non hai ancora installato Linuxbrew, fai riferimento al seguente link.
- Linuxbrew:un gestore di pacchetti comune per Linux e Mac OS X
Dopo aver installato Linuxbrew, esegui il seguente comando per installare Bench:
$ brew install bench
Innanzitutto, installa Haskell come descritto nel seguente link.
- Introduzione al linguaggio di programmazione Haskell
E poi, esegui i seguenti comandi per installare Bench.
$ stack setup
$ stack install bench
Lo "stack" installerà il banco su ~/.local/bin o qualcosa di simile. Assicurati che la directory di installazione si trovi nel tuo percorso di ricerca eseguibile prima di utilizzare lo strumento Bench. Ti verrà ricordato di farlo anche se te ne sei dimenticato.
Un altro modo per installare Bench è usare Nix gestore di pacchetti. Installa Nix come mostrato nel link sottostante.
- Nix:un potente gestore di pacchetti per Linux e Unix
Dopo aver installato Nix, installa lo strumento Bench usando il comando:
$ nix-env -i bench
1.2. Confronta i comandi e i programmi Linux utilizzando Bench
Analizziamo il risultato del comando 'ls -al'. Per farlo, esegui:
$ bench 'ls -al'
Risultato di esempio:
Confronta il comando 'ls'
Devi citare i comandi quando usi flag/opzioni con essi.
Allo stesso modo, puoi confrontare tutti i programmi installati nel tuo sistema. I seguenti comandi mostrano il risultato del benchmarking dei programmi 'htop' e 'ptop'.
$ bench htop
$ bench ptop
Confronta i programmi htop e ptop
Lo strumento Bench può anche confrontare più programmi contemporaneamente. Ecco il risultato del benchmarking dei programmi ls, htop, ptop.
$ bench ls htop ptop
Esempio di output:
Confronta più programmi
Possiamo anche esportare il risultato del benchmark in un HTML come di seguito.
$ bench htop --output example.html
Per esportare il risultato in CSV, esegui semplicemente:
$ bench htop --csv FILE
Visualizza la sezione della guida:
$ bench --help
2. Confronta i comandi e i programmi Linux dalla riga di comando utilizzando Hyperfine
Iperfine è un altro strumento di benchmarking da riga di comando ispirato allo strumento "Bench" di cui abbiamo appena discusso sopra. È un programma di benchmarking multipiattaforma gratuito, open source e scritto in Rust linguaggio di programmazione. Ha poche funzionalità aggiuntive rispetto allo strumento Bench come elencato di seguito.
- Analisi statistica su più esecuzioni.
- Supporto per comandi shell arbitrari.
- Feedback costante sull'andamento del benchmark e sulle stime attuali.
- Esegui cicli di riscaldamento prima del benchmark effettivo.
- I comandi di cancellazione della cache possono essere impostati prima di ogni esecuzione del tempo.
- Rilevamento di valori anomali statistici.
- Esportare i risultati del benchmark in vari formati, come CSV, JSON, Markdown.
- Benchmark parametrizzati.
2.1. Installa Hyperfine in Linux
Possiamo installare Hyperfine utilizzando uno qualsiasi dei seguenti metodi.
$ brew install hyperfine
Assicurati di aver installato Rust come descritto nel seguente link.
- Installa il linguaggio di programmazione Rust in Linux
Dopo aver installato Rust, esegui il comando seguente per installare Hyperfine tramite Cargo:
$ cargo install hyperfine
Hyperfine è disponibile in AUR . Quindi, puoi installarlo su sistemi basati su Arch utilizzando qualsiasi programma di supporto, come YaY , come di seguito.
$ yay -S hyperfine
Hyperfine è disponibile nei binari per i sistemi basati su Debian. Scarica l'ultimo file binario .deb dalla pagina delle versioni e installalo usando il gestore di pacchetti 'dpkg'. Al momento della stesura di questa guida, l'ultima versione era 1.4.0 .
$ wget https://github.com/sharkdp/hyperfine/releases/download/v1.4.0/hyperfine_1.4.0_amd64.deb
$ sudo dpkg -i hyperfine_1.4.0_amd64.deb
$ sudo apt install -f
2.2. Confronta i comandi e i programmi Linux utilizzando Hyperfine
Per eseguire un benchmark utilizzando Hyperfine, eseguilo semplicemente insieme al programma/comando come mostrato di seguito.
$ hyperfine 'ls -al'
Confronta i comandi usando hyperfine
Confronta più comandi/programmi:
$ hyperfine htop ptop
Esempio di output:
Confronta più programmi usando hyperfine
Come puoi vedere alla fine dell'output, Hyperfine cita:'htop ha funzionato 1,96 volte più velocemente di ptop' , quindi possiamo concludere immediatamente che htop ha prestazioni migliori di Ptop. Questo ti aiuterà a trovare rapidamente quale programma funziona meglio quando esegui il benchmarking di più programmi. Tuttavia, non otteniamo questo output dettagliato nell'utilità Bench.
Hyperfine determinerà automaticamente il numero di esecuzioni da eseguire per ciascun comando. Per impostazione predefinita, eseguirà almeno 10 esecuzioni di benchmarking . Se vuoi impostare il numero minimo di corse (Es. 5 corse), usa il -m
/--min-runs
opzione come di seguito:
$ hyperfine --min-runs 5 htop ptop
Oppure,
$ hyperfine -m 5 htop ptop
Allo stesso modo, per eseguire il numero massimo di corse per ogni comando, il comando sarebbe:
$ hyperfine --max-runs 5 htop ptop
Oppure,
$ hyperfine -M 5 htop ptop
Possiamo anche eseguire numero esatto di corse per ogni comando utilizzando il seguente comando:
$ hyperfine -r 5 htop ptop
Come forse saprai, se il tempo di esecuzione del programma è limitato dall'I/O del disco, i risultati del benchmarking possono essere fortemente influenzati dalle cache del disco e dal fatto che siano fredde o calde. Fortunatamente, Hyperfine ha la possibilità di eseguire un certo numero di esecuzioni di programmi prima di eseguire il benchmark effettivo.
Per eseguire NUM cicli di riscaldamento (ad es. 3) prima del benchmark effettivo, utilizza il -w
/ --warmup
opzione come di seguito:
$ hyperfine --warmup 3 htop
Proprio come l'utilità Bench, Hyperfine ci consente anche di esportare i risultati del benchmark in un determinato file. Possiamo esportare i risultati nei formati CSV, JSON e Markdown.
Ad esempio, per esportare i risultati in formato Markdown, utilizzare il comando seguente:
$ hyperfine htop ptop --export-markdown <FILE-NAME>
Per ulteriori opzioni e dettagli sull'utilizzo, fare riferimento alla sezione della guida:
$ hyperfine --help
E per ora è tutto. Se ti sei mai trovato in una situazione in cui hai bisogno di confrontare programmi simili e alternativi, questi strumenti potrebbero aiutarti.