- 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.hrtime oder performance.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- oder bench-Ebene, wobei die Option threshold die maximale gleichzeitige Anzahl steuert
- Erweiterbar durch eventbasierte Architektur: Die Klassen
Bench und Task erben von EventTarget und erlauben das Registrieren von Event-Listenern wie cycle und abort
- Automatische Erkennung asynchroner Funktionen: Prüft automatisch, ob
AsyncFunction oder ein Promise zurückgegeben wird, und konfiguriert den async-Modus automatisch
- Ergebnisvisualisierung und -konvertierung: Konvertiert das Ausgabeformat über die Methode
bench.table() in das Format von console.table(), mit benutzerdefinierten Converter-Funktionen zur Anpassung des Ausgabeformats
- Mit aktivierter Einstellung
retainSamples werden 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
- 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
Noch keine Kommentare.