- Kod performansını hassas şekilde ölçmek için geliştirilmiş 10KB'ın altında ultra hafif bir benchmark aracı
- Web API tabanlı olarak çalışır ve
process.hrtime veya performance.now kullanarak kesin zamanlama ölçümü destekler
- Node.js, Deno, Bun gibi çeşitli JavaScript runtime ortamlarında çalıştırılabilir
- İstatistik tabanlı analiz işlevleri sağlar: ortalama, standart sapma, hata payı, varyans, yüzdelik değerler gibi metriklerle gecikme (latency) ve işleme kapasitesi (throughput) hesaplamalarını destekler
- Eşzamanlılık (concurrency) çalıştırma modu:
task veya bench birimi düzeyinde paralel çalıştırılabilir, threshold seçeneğiyle en fazla eşzamanlı çalıştırma sayısı kontrol edilir
- Etkinlik tabanlı yapıyla genişletilebilir:
Bench ve Task sınıfları EventTarget'ı miras alır ve cycle, abort gibi olay dinleyicileri kaydedilebilir
- Asenkron fonksiyon otomatik algılama:
AsyncFunction veya Promise dönüşünü kontrol ederek async modu otomatik olarak ayarlar
- Sonuç görselleştirme ve dönüştürme:
bench.table() metodu ile console.table() çıktı formatını dönüştürür, özel bir Converter fonksiyonu ile çıktı biçimi özelleştirilebilir
retainSamples ayarı yapıldığında ham örnek veriler olduğu gibi saklanır; özel analiz, grafik görselleştirme ve sonuç dışa aktarma için kullanılabilir
- Kesin zaman damgası sağlayıcısı (timestamp provider) seçilebilir
- Varsayılan olarak
performance.now()
hrtimeNow, bunNanoseconds, auto gibi runtime bazlı optimizasyon seçenekleri desteklenir
- Özel bir TimestampProvider arayüzü uygulanabilir
- AbortSignal tabanlı durdurma kontrolü desteği
- Benchmark'ın tamamında veya tekil görev düzeyinde çalışmayı durdurma (abort) yapılabilir
- Durdurma sırasında
abort olayı tetiklenir ve durum bayrağı (task.result.aborted) ayarlanır
- Harici kütüphane bağımlılığı olmayan tek paket yapısıyla hızlı başlatma ve yürütme hızı sağlanır
- Benchmark.js, mitata, tatami-ng, Bema'ye kıyasla daha küçük, daha basit ve Web API dostu bir tasarım özellik gösterir
Henüz yorum yok.