Tinybench – leichtgewichtige JavaScript-Benchmarking-Bibliothek
(github.com/tinylibs)- Entwickelt als ultraleichtes Benchmarking-Tool mit weniger als 10 KB, um die Code-Performance präzise zu messen
- Funktioniert auf Basis der Web API und unterstützt exakte Zeitmessungen mit
process.hrtimeoderperformance.now - Führbar in verschiedenen JavaScript-Runtime-Umgebungen wie Node.js, Deno und Bun
- Bietet statistikbasierte Auswertungsfunktionen: Durchschnitt, Standardabweichung, Fehlerspanne, Varianz, Perzentile sowie Berechnungen für Latenz (latency) und Durchsatz (throughput)
- Ausführungsmodus für Concurrency: Parallele Ausführung auf
task- oderbench-Ebene, wobei die Optionthresholddie maximale gleichzeitige Anzahl steuert - Erweiterbar durch eventbasierte Architektur: Die Klassen
BenchundTaskerben von EventTarget und erlauben das Registrieren von Event-Listenern wiecycleundabort - Automatische Erkennung asynchroner Funktionen: Prüft automatisch, ob
AsyncFunctionoder einPromisezurückgegeben wird, und konfiguriert den async-Modus automatisch - Ergebnisvisualisierung und -konvertierung: Konvertiert das Ausgabeformat über die Methode
bench.table()in das Format vonconsole.table(), mit benutzerdefinierten Converter-Funktionen zur Anpassung des Ausgabeformats - Mit aktivierter Einstellung
retainSampleswerden Roh-Sampeldaten unverändert gehalten und können für benutzerdefinierte Analysen, Diagrammvisualisierungen und den Export von Ergebnissen genutzt werden - Flexible Auswahl eines präzisen Timestamp-Providers
- Standardmäßig
performance.now() - Unterstützt runtime-spezifische Optimierungsoptionen wie
hrtimeNow,bunNanoseconds,auto - Implementierung einer benutzerdefinierten TimestampProvider-Schnittstelle möglich
- Standardmäßig
- Unterstützung für Abbruchsteuerung auf Basis von
AbortSignal- Abbruch möglich für den kompletten Benchmark oder einzelne Tasks
- Bei einem Abbruch wird das
abort-Ereignis ausgelöst und das Status-Flag (task.result.aborted) gesetzt
- Paket mit Einzelstruktur ohne externe Bibliotheksabhängigkeiten für eine schnelle Initialisierung und Ausführungsgeschwindigkeit
- Als besonderes Merkmal gilt ein kleineres, einfacheres und Web-API-freundlicheres Design als bei Benchmark.js, mitata, tatami-ng und Bema
1 Kommentare
Ich frage mich, ob man so etwas jetzt noch braucht. KI schreibt inzwischen wirklich sehr gute Skripte zur Performance-Messung, passend für den jeweiligen Zeitpunkt und Kontext..