CodeBlanks Logo Icon CodeBlanks

Event loop latency

Event loop latency ve blokajı öğrenirsin.

Event loop latency

Olay döngüsü gecikmesi (event loop latency), olay döngüsünün bir türünü tamamlamasının ne kadar sürdüğüdür. Yüksek gecikme, olay döngüsünün tıkandığını gösterir; bu da isteklerin yavaşlamasına yol açar.

Ölçüm yöntemi: setTimeout(cb, 0) planlarsın; cb'nin ne zaman çağrıldığını ölçersin. Gecikme, cb'nin çağrılma zamanı ile planlanan zaman arasındaki farktır. Node.js 16+'da performance.eventLoopUtilization() da kullanışlıdır.

Latency ölçme kalıbı

Tipik bir latency ölçümü: const start = performance.now(); setTimeout(() => { const delay = performance.now() - start; }, 0);. Beklenen gecikme sıfıra yakındır; ama olay döngüsü meşgulse artar.

Bu kalıbı düzenli aralıklarla tekrarlayarak bir trend elde edersin. Gecikme sürekli yüksekse, CPU yoğun bir iş olay döngüsünü tıkıyor demektir. Çözüm: o işi bir işçi iş parçacığına taşımaktır.

Uygulama Geçen zamanı karşılaştır

performance'ı içe aktar. start değişkenine performance.now() ata. Kısa bir döngü çalıştır. performance.now() >= start sonucunu yaz.

Başlangıç kodu

index.js
// modülü içe aktar, zamanlayıcıyı al

// start değişkenine başlangıç zamanını ata

// kısa bir döngü çalıştır

// geçen zamanı karşılaştır

Örnek çözüm

index.js
const { performance } = require("perf_hooks");
const start = performance.now();
let sum = 0;
for (let i = 0; i < 100; i++) sum += i;
console.log(performance.now() >= start);

Beklenen çıktı

true

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Metod adını tamamla

Soru
const start = performance.____()
Cevap
const start = performance.now()

Açıklama: performance.now() başlangıç zamanını verir.

2 Event loop latency neyi ölçer?

  • Dosya boyutunu
  • Olay döngüsünün gecikmesini Doğru cevap
  • Ağ hızını
  • Bellek kullanımını

Açıklama: Event loop latency olay döngüsünün gecikmesini ölçer.

3 Parçayı rolüne eşle

Kavram Anlamı
performance.now() Başlangıç zamanı
latency Gecikme
setTimeout Zamanlayıcı
event loop Olay döngüsü

İleri seviye bölümündeki tüm dersler