Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Node.js Nedir? V8, libuv ve Event-Driven Sunucu Modeli: ASP.NET Core Geliştiricisinin Gözüyle
Node.js, JavaScript'i sunucuda V8 engine'i ve libuv event loop'u ile çalıştıran bir runtime'dır: kodun tek thread'de çalışır, I/O beklemesi thread tutmaz, ama uzun bir senkron hesaplama bütün request'leri bekletir. Gerçek ölçümlerle 500 eşzamanlı beklemenin 227 ms sürmesi, 1,4 saniyelik bir raporun basit bir isteği 1.340 ms bekletmesi, 4 thread'lik libuv pool'u, Kestrel/ThreadPool ile karşılaştırma, Node mu .NET mi tablosu ve Node 27 ile gelen yıllık release takvimi.
Node.js Event Loop'u Sunucu Tarafında: libuv Phase'leri, process.nextTick, setImmediate ve Event Loop'u Bloklamak
Node.js event loop'u her turda libuv phase'lerinden (pending, poll, check, close, timers) geçer ve her callback'ten sonra önce nextTick, sonra promise queue'sunu boşaltır; bu yüzden I/O callback'i içinde setImmediate, setTimeout(0)'dan önce çalışır. Gerçek ölçümlerle dolu thread pool'un dosya okumayı 371 ms bekletmesi, JSON.parse ve ReDoS ile bloklama, monitorEventLoopDelay ve Bookstore fiyat raporunun inline, parçalı ve worker modlarında /health'i 481, 13 ve 1 ms bekletmesi.