4th Street Bar Hive-Bar

Hive-Bar Powered by Hive beta-fdb5b5b

Community post

Hyperfine - Open-Source Benchmark-Tool für die Kommandozeile

https://files.peakd.com/file/peakd-hive/hackspoiler/23xKG6pR6zsR63RoVfHS97A6wfBYHpFh7Upyb7pcdgmCF85FQybewh7EqvtovAEC7qjfm.jpg

Hyperfine ist ein freshes, in Rust geschmiedetes Open-Source (MIT) Kommandozeilen-Benchmark-Tool zur präzisen Messung der Ausführungszeit beliebiger Shell-Befehle. Dieser Schurke führt mehrere Durchläufe mit statistischer Auswertung (Mittelwerte, Min/Max, Abweichungen) durch, zeigt den Fortschritt direkt visualisiert im Terminal an und unterstützt wacker Warmup-Runs und Cache-Flushes für konsistente Messungen. Die Messkunde lässt sich gekonnt als CSV, JSON, Markdown oder AsciiDoc exportieren, um selbst so anspruchsvolle Stakeholder wie Speedy Gonzales, Road Runner und Co. mit datengetriebener Präzision zu beeindrucken. Somit ist Hyperfine ein gar vortreffliches und holdes Werkzeug für Entwickler und Admins, die Skripte, Tools, Algorithmen oder Befehle testen, optimieren oder regelmäßig überwachen wollen.

Als bekennender Hochgeschwindigkeits-Junkie prügel ich in feinster Jackie-Chan-Manier regelmäßig verschiedenste Linux-Kommandos, wie z.B grep vs. ripgrep, diverse Backup-Kompressionsstufen, rsync- und Datenbank-Dump-Optionen sowie Bash-Skripte durch Hyperfein um den heiligen Gral der Performance zu erlangen.

Stabile Features:

  • Vergleich beliebig vieler Befehle in einem Rutsch 🛝
  • Farbenfrohe, velly übersichtliche Ausgabe im Terminal
  • Läuft plattformübergreifend auf Linux, macOS und Windows 🤤
  • Warmup-Runs 🏃🏻‍➡️ zur trickreichen Vermeidung von Caching-Effekten
  • Export in JSON, CSV, AsciiDoc oder Markdown für schapätere Analyse
  • Mehrfachdurchläufe 🏃🏻‍➡️🏃🏻‍♀️‍➡️🏃🏻‍♂️‍➡️ mit Durchschnitt, Minimum, Maximum & Standardabweichung

Hyperfein Beispiel-Vorführung:

#============================================================
# Hyperfine installieren
#============================================================
wget -O /tmp/hyperfine.deb https://github.com/sharkdp/hyperfine/releases/download/v1.19.0/hyperfine_1.19.0_amd64.deb
dpkg -i /tmp/hyperfine.deb
rm /tmp/hyperfine.deb

#============================================================
# Einfacher Benchmark - grep vs ripgrep
#============================================================
hyperfine "grep '404' /var/log/nginx/access.log" "rg '404' /var/log/nginx/access.log"

#============================================================
# Mehrere Befehle Benchmarken
#============================================================
# 5 Warmup-Läufe + 20 Messungen pro Befehl
hyperfine --warmup 5 --runs 20 \
  "apt list --upgradable 2>/dev/null | grep -c 'upgradable from'" \
  "apt list --upgradable 2>/dev/null | grep -v '^Listing...' | grep -v '^$' | wc -l" \
  "apt list --upgradable 2>/dev/null | awk '/^[^[:space:]]/ && \!/Listing.../ {print}' | wc -l"

#============================================================
# Benchmark zweier Skripts ohne Umgehung des Caching
#============================================================
hyperfine --warmup 5 --runs 30 './os-system-info-motd.sh' './os-system-info-motd-v2.sh'

Benchmark 1: ./os-system-info-motd.sh
  Time (mean ± σ):     692.9 ms ±  19.9 ms    [User: 44.4 ms, System: 80.0 ms]
  Range (min … max):   663.4 ms … 745.3 ms    30 runs

Benchmark 2: ./os-system-info-motd-v2.sh
  Time (mean ± σ):     655.5 ms ±  22.0 ms    [User: 39.0 ms, System: 65.7 ms]
  Range (min … max):   626.3 ms … 717.5 ms    30 runs

Summary
  ./os-system-info-motd-v2.sh ran
    1.06 ± 0.05 times faster than ./os-system-info-motd.sh

#============================================================
# Benchmark zweier Skripts mit Umgehung des Caching-Effekts
#============================================================
hyperfine --warmup 5 --runs 30 --prepare 'sync; echo 3 > /proc/sys/vm/drop_caches' './os-system-info-motd.sh' './os-system-info-motd-v2.sh'

Benchmark 1: ./os-system-info-motd.sh
  Time (mean ± σ):     860.3 ms ±  22.6 ms    [User: 47.1 ms, System: 89.4 ms]
  Range (min … max):   822.1 ms … 936.3 ms    30 runs

Benchmark 2: ./os-system-info-motd-v2.sh
  Time (mean ± σ):     834.6 ms ±  16.0 ms    [User: 40.5 ms, System: 76.5 ms]
  Range (min … max):   808.9 ms … 869.0 ms    30 runs

Summary
  ./os-system-info-motd-v2.sh ran
    1.03 ± 0.03 times faster than ./os-system-info-motd.sh
16 upvotes $0.74

Replies (0)

Conversation

No replies yet

Replies will appear here as people join the conversation.

Review before signing

Posting as . Signing with . Keychain permission: Posting. Hive Keychain will ask you to approve this action next.


  
Technical details

Operation fingerprint: