CodeBlanks Logo Icon CodeBlanks

Performans ölçümü

JavaScript kursu · Uzman · Ders 7/63

performance.now ve profiling ile bir işlemin süresini ölçmeyi öğrenirsin.

Süre ölçümü

Bir işlemin ne kadar sürdüğünü ölçmek için performance.now() kullanılır. Bu yöntem, sayfa yüklendiğinden beri geçen süreyi milisaniye cinsinden yüksek çözünürlükte verir.

Ölçüm yapmak için işlemden önce ve sonra birer değer alıp farklarını hesaplarsın. Bu teknik benchmark denilen kıyaslama testlerinde yaygındır.

Tarayıcı profil araçları ek olarak hangi fonksiyonun ne kadar sürdüğünü gösterir; ancak kod içi ölçüm için performance.now() en doğru seçenektir.

Uygulama Süre ölçen fonksiyon

measure adında bir fonksiyon yaz. fn parametresini alıp çalıştırsın ve performance.now() ile geçen süreyi milisaniye olarak döndürsün.

Örnek çözümü göster
performance.now() ile başlangıç ve bitiş zamanlarını al, farkı döndür.

Örnek çözüm:
function measure(fn) {
  const start = performance.now();
  fn();
  const end = performance.now();
  return end - start;
}

Güvenilir ölçüm

Birden fazla ölçümü yan yana karşılaştırmak için bir measure fonksiyonu yazabilirsin. Bu fonksiyon, kendisine verilen işlemi çalıştırır ve süreyi döndürür.

Ölçüm sonuçlarını yorumlarken tek çalıştırma yerine ortalamaya almak daha sağlıklıdır. Tek seferlik sonuç, çöp toplama veya diğer arka plan işleri yüzünden yanıltıcı olabilir.

Kendini test et

  1. performance.now() ne döndürür?

    • Tarih nesnesi
    • Milisaniye cinsinden zaman
    • Çalışan süre (saniye)
    • Bellek kullanımı
    Cevabı göster

    Milisaniye cinsinden zaman — Doğru! performance.now() sayfa yüklendiğinden beri geçen süreyi milisaniye olarak verir.

  2. Süre ölçümü

    const start = ____;
    heavyWork();
    const end = performance.now();
    console.log(end - start);
    Cevabı göster
    const start = performance.now();
    heavyWork();
    const end = performance.now();
    console.log(end - start);
  3. Zaman API'sini eşleştir

    performance.now
    ms cinsinden süre
    Date.now
    unix zaman damgası
    console.time
    basit süre ölçer
    performance.mark
    adlandırılmış işaret

Uzman bölümündeki tüm dersler