GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So testen Sie Linux-Befehle und -Programme über die Befehlszeile

Vor einiger Zeit habe ich ein paar Alternativen zu ‚top‘, dem Befehlszeilenprogramm, geteilt . Einige der Benutzer haben mich gefragt, welches dieser Tools das beste ist und auf welcher Grundlage (wie Funktionen, Mitwirkende, aktive Jahre, Seitenanfragen usw.) ich diese Tools verglichen habe. Sie baten mich auch, die Benchmarking-Ergebnisse zu teilen, falls ich welche habe. Leider wusste ich damals noch nicht, wie man Programme bewertet. Bei der Suche nach einfachen und benutzerfreundlichen Benchmarking-Tools zum Vergleichen von Linux-Programmen bin ich auf zwei Dienstprogramme namens 'Bench' gestoßen und 'Hyperfine' . Dies sind einfache und benutzerfreundliche Befehlszeilentools zum Benchmarking von Linux-Befehlen und -Programmen auf Linux- und Unix-ähnlichen Systemen.

1. Benchmarking von Linux-Befehlen und -Programmen über die Befehlszeile mit Bench Tool

Die 'Bank' Dienstprogramm bewertet einen oder mehrere gegebene Befehle/Programme unter Verwendung des Haskell-Kriteriums Bibliothek und zeigt die Ausgabestatistiken in einem leicht verständlichen Format an. Dieses Tool kann hilfreich sein, wenn Sie ähnliche Programme basierend auf dem Benchmarking-Ergebnis vergleichen müssen. Wir können die Ergebnisse auch in das HTML-Format oder CSV- oder Vorlagenformat exportieren.

1.1. Installieren Sie das Bench-Dienstprogramm unter Linux

Das Bankdienstprogramm kann auf drei Arten installiert werden.

1. Verwendung von Linuxbrew

Wir können das Bench-Dienstprogramm mit dem Linuxbrew-Paketmanager installieren. Wenn Sie Linuxbrew noch nicht installiert haben, sehen Sie sich den folgenden Link an.

  • Linuxbrew – Ein gemeinsamer Paketmanager für Linux und Mac OS X

Führen Sie nach der Installation von Linuxbrew den folgenden Befehl aus, um Bench zu installieren:

$ brew install bench

2. Verwenden des Stack-Tools von Haskell

Installieren Sie zunächst Haskell wie im folgenden Link beschrieben.

  • Erste Schritte mit der Programmiersprache Haskell

Führen Sie dann die folgenden Befehle aus, um Bench zu installieren.

$ stack setup
$ stack install bench

Der „Stack“ installiert Bench nach ~/.local/bin oder etwas ähnliches. Stellen Sie sicher, dass sich das Installationsverzeichnis in Ihrem ausführbaren Suchpfad befindet, bevor Sie das Bench-Tool verwenden. Sie werden daran erinnert, auch wenn Sie es vergessen haben.

3. Verwenden des Nix-Paketmanagers

Eine andere Möglichkeit, Bench zu installieren, ist die Verwendung von Nix Paket-Manager. Installieren Sie Nix wie im folgenden Link gezeigt.

  • Nix – Ein leistungsstarker Paketmanager für Linux und Unix

Installieren Sie nach der Installation von Nix das Bench-Tool mit dem Befehl:

$ nix-env -i bench

1.2. Benchmarken von Linux-Befehlen und -Programmen mit Bench

Lassen Sie uns das Ergebnis des Befehls ‚ls -al‘ vergleichen. Führen Sie dazu Folgendes aus:

$ bench 'ls -al'

Beispielausgabe:

Benchmark-'ls'-Befehl

Sie müssen die Befehle in Anführungszeichen setzen, wenn Sie Flags/Optionen mit ihnen verwenden.

In ähnlicher Weise können Sie alle auf Ihrem System installierten Programme bewerten. Die folgenden Befehle zeigen das Benchmarking-Ergebnis von 'htop'- und 'ptop'-Programmen.

$ bench htop
$ bench ptop

Benchmarking von htop- und ptop-Programmen

Das Bench-Tool kann auch mehrere Programme gleichzeitig bewerten. Hier ist das Benchmarking-Ergebnis der Programme ls, htop, ptop.

$ bench ls htop ptop

Beispielausgabe:

Benchmarken mehrerer Programme

Wir können das Benchmark-Ergebnis auch wie unten in ein HTML exportieren.

$ bench htop --output example.html

Um das Ergebnis in CSV zu exportieren, führen Sie einfach Folgendes aus:

$ bench htop --csv FILE

Hilfebereich anzeigen:

$ bench --help

2. Benchmarking von Linux-Befehlen und -Programmen über die Befehlszeile mit Hyperfine

Hyperfein ist ein weiteres Befehlszeilen-Benchmarking-Tool, das von dem oben besprochenen „Bench“-Tool inspiriert ist. Es ist ein kostenloses, plattformübergreifendes Open-Source-Benchmarking-Programm und in Rust geschrieben Programmiersprache. Es hat im Vergleich zum unten aufgeführten Bench-Tool nur wenige zusätzliche Funktionen.

  • Statistische Analyse über mehrere Läufe hinweg.
  • Unterstützung für beliebige Shell-Befehle.
  • Ständiges Feedback über den Benchmark-Fortschritt und aktuelle Schätzungen.
  • Führen Sie Aufwärmläufe vor dem eigentlichen Benchmark durch.
  • Cache-Löschbefehle können vor jedem Zeitmessungslauf eingerichtet werden.
  • Statistische Ausreißererkennung.
  • Exportieren Sie Benchmark-Ergebnisse in verschiedene Formate wie CSV, JSON, Markdown.
  • Parametrisierte Benchmarks.

2.1. Installieren Sie Hyperfine unter Linux

Wir können Hyperfine mit einer der folgenden Methoden installieren.

1. Verwendung von Linuxbrew

$ brew install hyperfine

2. Fracht verwenden

Stellen Sie sicher, dass Sie Rust wie im folgenden Link beschrieben installiert haben.

  • Installieren Sie die Programmiersprache Rust unter Linux

Führen Sie nach der Installation von Rust den folgenden Befehl aus, um Hyperfine über Cargo zu installieren:

$ cargo install hyperfine

3. Verwenden von AUR-Hilfsprogrammen

Hyperfein ist in AUR verfügbar . Sie können es also mit beliebigen Hilfsprogrammen wie YaY auf Arch-basierten Systemen installieren , wie unten.

$ yay -S hyperfine

4. Laden Sie die Binärdateien herunter und installieren Sie sie

Hyperfine ist in Binärdateien für Debian-basierte Systeme verfügbar. Laden Sie die neueste .deb-Binärdatei von der Versionsseite herunter und installieren Sie es mit dem Paketmanager ‚dpkg‘. Zum Zeitpunkt der Erstellung dieses Leitfadens war die neueste Version 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. Benchmarken von Linux-Befehlen und -Programmen mit Hyperfine

Um einen Benchmark mit Hyperfine auszuführen, führen Sie ihn einfach zusammen mit dem Programm/Befehl aus, wie unten gezeigt.

$ hyperfine 'ls -al'

Benchmark-Befehle mit hyperfine

Vergleichen Sie mehrere Befehle/Programme:

$ hyperfine htop ptop

Beispielausgabe:

Benchmarken Sie mehrere Programme mit hyperfine

Wie Sie am Ende der Ausgabe sehen können, erwähnt Hyperfine - 'htop lief 1,96-mal schneller als ptop' , sodass wir sofort schlussfolgern können, dass htop besser abschneidet als Ptop. Auf diese Weise können Sie beim Benchmarking mehrerer Programme schnell feststellen, welches Programm besser abschneidet. Wir erhalten diese detaillierte Ausgabe jedoch nicht im Bench-Dienstprogramm.

Hyperfine bestimmt automatisch die Anzahl der für jeden Befehl auszuführenden Läufe. Standardmäßig führt es mindestens 10 Benchmarking-Durchläufe durch . Wenn Sie die Mindestanzahl von Läufen festlegen möchten (z. B. 5 Läufe), verwenden Sie den -m /--min-runs Option wie unten:

$ hyperfine --min-runs 5 htop ptop

Oder,

$ hyperfine -m 5 htop ptop

Ebenso, um die maximale Anzahl von Läufen auszuführen für jeden Befehl wäre der Befehl:

$ hyperfine --max-runs 5 htop ptop

Oder,

$ hyperfine -M 5 htop ptop

Wir können sogar eine genaue Anzahl von Läufen durchführen für jeden Befehl mit dem folgenden Befehl:

$ hyperfine -r 5 htop ptop

Wie Sie vielleicht wissen, können die Benchmarking-Ergebnisse stark von Festplatten-Caches und davon, ob sie kalt oder warm sind, beeinflusst werden, wenn die Programmausführungszeit durch Festplatten-I/O begrenzt ist. Glücklicherweise hat Hyperfine die Möglichkeit, eine bestimmte Anzahl von Programmausführungen durchzuführen, bevor der eigentliche Benchmark durchgeführt wird.

Um NUM Aufwärmläufe (z. B. 3) vor dem eigentlichen Benchmark durchzuführen, verwenden Sie das -w / --warmup Option wie unten:

$ hyperfine --warmup 3 htop

Genau wie das Dienstprogramm Bench ermöglicht uns Hyperfine auch, die Benchmark-Ergebnisse in eine bestimmte Datei zu exportieren. Wir können die Ergebnisse in die Formate CSV, JSON und Markdown exportieren.

Um beispielsweise die Ergebnisse im Markdown-Format zu exportieren, verwenden Sie den folgenden Befehl:

$ hyperfine htop ptop --export-markdown <FILE-NAME>

Weitere Optionen und Einzelheiten zur Verwendung finden Sie im Hilfeabschnitt:

$ hyperfine --help

Und das ist alles für jetzt. Wenn Sie jemals in einer Situation waren, in der Sie ähnliche und alternative Programme bewerten mussten, könnten diese Tools hilfreich sein.


Linux
  1. So deaktivieren Sie Befehle zum Herunterfahren und Neustarten in Linux

  2. So steuern Sie Media Player über die Befehlszeile in Linux

  3. So löschen Sie den Webbrowser-Cache von der Befehlszeile in Linux

  4. So verwenden Sie die Befehle strace und ltrace unter Linux

  5. Wie verwende ich sched_getaffinity und sched_setaffinity in Linux von C aus?

So finden Sie die Virtualbox-Version über die Befehlszeile in Linux

So kompilieren und führen Sie C- und C++-Programme unter Linux aus

So führen Sie MS-DOS-Spiele und -Programme unter Linux aus

Verbinden und trennen Sie WLAN von der Befehlszeile in Linux

So überprüfen Sie, ob die GUI in Linux über die Befehlszeile installiert ist

So löschen Sie Dateien und Verzeichnisse mit der Linux-Befehlszeile