CodeBlanks Logo Icon CodeBlanks

V8 nedir?

V8 motorunun ne olduğunu ve nasıl çalıştığını öğrenirsin.

V8 nedir?

V8, Google'ın açık kaynak JavaScript motorudur. Node.js, Chrome ve Electron V8 üzerine kuruludur. V8 JavaScript kodunu makine koduna çevirir ve yürütür; bu, kodun tarayıcı dışında da hızlı çalışmasını sağlar.

V8 bir JIT (just-in-time) derleyicisi kullanır: kodu çalışma anında derler, yorumlamaz. Bu, yorumlanan dillerden çok daha hızlı yürütme sağlar. V8 aynı zamanda bellek yönetimini (garbage collection) ve nesne iç yapısını (hidden classes) kendisi üstlenir. Node.js geliştiricisi olarak V8'in ne yaptığını bilirseniz, neden bazı desenlerin hızlı olduğunu anlarsın. Bu derste V8'in temel yapı taşlarına bakıyoruz.

JIT derlemesi

V8, JavaScript kodunu yorumlamak yerine JIT ile çalışma anında derler. Kod önce hızlı bir şekilde bytecode'a çevrilir, sonra sık çalışan bölümler makine koduna yükseltilir. Bu, yavaş yorumlama ile yavaş tam derleme arasındaki dengeyi kurar.

Bir fonksiyon ilk çağrıldığında V8 onu hızla derler. Çağrı sayısı bir eşiği geçince V8 fonksiyonu hot işaretler ve daha agresif iyileştirme uygular. Örnek: function isHot(callCount) { return callCount >= 100; }. Bir fonksiyon 100 kez çağrılırsa hot sayılır. JIT sayesinde Node.js, C kadar hızlı olmasa da yorumlanan dillerden çok daha hızlıdır.

Uygulama V8 motorunu tanımla

v8Engine fonksiyonu yaz. {name: 'V8', language: 'JavaScript', type: 'JIT'} döndürsün. console.log(v8Engine().name + ': ' + v8Engine().type) ile yazdır.

Başlangıç kodu

index.js
// V8 motorunu tanımlayan fonksiyon yaz
// {name: 'V8', language: 'JavaScript', type: 'JIT'} döndürsün
// ad ve türü yazdır
// buraya yaz

Örnek çözüm

index.js
function v8Engine() {
  return {name: 'V8', language: 'JavaScript', type: 'JIT'};
}
console.log(v8Engine().name + ': ' + v8Engine().type);

Beklenen çıktı

V8: JIT

Soru ve cevaplar

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

1 Node.js hangi motorun üzerine kuruludur?

  • SpiderMonkey
  • Chakra
  • V8 Doğru cevap
  • JavaScriptCore

Açıklama: Node.js V8 motoru üzerine kuruludur.

2 V8 motorunun türünü döndür

Soru
function v8Engine() { return {name: 'V8', language: 'JavaScript', type: '____'}; }
Cevap
function v8Engine() { return {name: 'V8', language: 'JavaScript', type: 'JIT'}; }

Açıklama: V8 bir JIT derleyicisi kullanır.

3 Kavramı açıklamasına eşle

Kavram Anlamı
V8 JavaScript motoru
JIT Çalışma anında derleme
Node.js V8 üzerine kurulu
Chrome V8 kullanan tarayıcı

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