JavaScript benchmark nedir?

JavaScript benchmark, bir kod parçasının ne kadar hızlı çalıştığını ölçer; bunu sabit bir zaman dilimi içinde tekrar tekrar çalıştırarak ve saniyede kaç işlem tamamlayabileceğini sayarak gerçekleştirir. Benchmarking, aynı probleme iki farklı yaklaşımı karşılaştırmak için yaygın olarak kullanılır — örneğin, belirli bir kullanım durumu için Array.includes() öğesinin Array.indexOf() öğesinden daha hızlı olup olmadığını kontrol etmek. Sonuçlar tarayıcılar ve cihazlar arasında önemli ölçüde değişebilir, çünkü her JavaScript motoru (V8, SpiderMonkey, JavaScriptCore) kendi optimizasyonlarına ve JIT derleme stratejilerine sahiptir.

Araç açıklaması

Bu araç, iki JavaScript kod parçacığını yapıştırmanıza ve tarayıcınızda doğrudan başa başa performans karşılaştırması yapmanıza olanak tanır. Her parçacık yapılandırılabilir bir süre boyunca zamanlanır ve sonuçlar her iki işlev için saniyedeki işlemleri ve işlem başına ortalama zamanı gösterir. İlerleme çubuğu, göreceli performans farkını vurgulayarak hangi yaklaşımın daha hızlı olduğunu bir bakışta görmek kolaylaştırır.

Özellikler

  • Her iki parçacığı bir Web Worker içinde çalıştırır, böylece benchmarklar tarayıcı sekmesini asla engelleme veya dondurma
  • Doğruluk ile bekleme süresi arasında denge kurmak için yapılandırılabilir benchmark süresi
  • Görsel çubuk ve yüzde farkı ile yan yana ops/sec karşılaştırması

Nasıl çalışır

Her parçacık, JIT derleyicisinin kodu optimize etmesine izin vermek için 100 ms ısınma aşamasından sonra belirtilen süre boyunca (varsayılan 2 saniye) çalışan bir döngüye sarılır. İşlemler zamanlanmış pencere sırasında sayılır ve ops/sec şu şekilde hesaplanır: count / elapsed_ms * 1000. Tüm benchmark bir Web Worker içinde çalışır, bu nedenle DOM'a erişemez, ancak Math, Date, performance, diziler ve nesneler gibi standart JavaScript globallerine erişimi vardır.

İpuçları

  • Parçacıkları bağımsız tutun; yinelemeler arasında biriken yan etkileri önleyin
  • Hızlı işlemlerde daha kararlı sonuçlar için daha uzun bir süre (3–5 saniye) kullanın
  • Sonuçlar, belirli tarayıcınızı ve makinenizi yansıtır — her zaman hedef ortamda benchmark yapın