V8 (JavaScript motoru) - V8 (JavaScript engine)
Orijinal yazar(lar) | Lars Bak ait Google |
---|---|
Geliştirici(ler) | Krom Projesi |
İlk sürüm | 2 Eylül 2008 |
kararlı sürüm | |
depo | |
Yazılmış | C++ |
platformu | IA-32 , x86-64 , ARM , AArch64 , MIPS , MIPS64 PowerPC , IBM s390 |
Tip | JavaScript motoru |
Lisans | BSD |
İnternet sitesi |
v8 |
V8 , Google Chrome ve Chromium web tarayıcıları için Chromium Project tarafından geliştirilen açık kaynaklı bir JavaScript motorudur . Projenin yaratıcısı Lars Bak . Örneğin, 2 Eylül 2008. Ayrıca, sunucu tarafında kullanılmıştır: V8 motorun ilk sürümü Chrome ilk sürümü ile aynı zamanda serbest bırakıldı Couchbase ve node.js .
Tarih
V8 birleştirici , Strongtalk birleştiricisine dayanmaktadır . 7 Aralık 2010'da, hız iyileştirmeleriyle birlikte Crankshaft adlı yeni bir derleme altyapısı yayınlandı. 2015 Chrome sürümünü 41, proje TurboFan önceden gibi iş yükünü zorlu devamı performans artışı temin etmek üzere ilave edilmiştir asm.js .
2016 yılında, TurboFan ve Krank Miline kıyasla küçük bellekli Android telefonlarda bellek kullanımını azaltma tasarım hedefiyle V8'e Ateşleme yorumlayıcısı eklendi.
2017'de V8, Ignition ( tercüman ) ve TurboFan'dan ( optimizasyon derleyicisi ) oluşan yepyeni bir derleyici ardışık düzenini gönderdi . V8 sürüm 5.9'dan itibaren, Ekip artık yeni JavaScript dil özelliklerine ve bu özelliklerin gerektirdiği optimizasyonlara ayak uyduramayacaklarına inandığından, Full-codegen (ilk temel derleyici) ve Krank Mili artık JavaScript yürütmesi için V8'de kullanılmamaktadır. .
Tasarım
V8 önce kendi ayrıştırıcısıyla soyut bir sözdizimi ağacı oluşturur . Ardından, Ignition , dahili V8 bayt kodu biçimini kullanarak bu sözdizimi ağacından bayt kodu oluşturur . TurboFan bu bayt kodunu makine kodunda derler. Başka bir deyişle, V8, çalıştırmadan önce tam zamanında derlemeyi kullanarak ECMAScript'i doğrudan yerel makine koduna derler . Derlenen kod ayrıca, kodun yürütme profilinin buluşsal yöntemlerine dayalı olarak çalışma zamanında dinamik olarak optimize edilir (ve yeniden optimize edilir). Kullanılan Optimizasyon teknikleri içermektedir inlining , elision pahalı çalışma zamanı özelliklerinin ve satır içi önbelleğe alma . Çöp toplayıcı bir olan nesiller artan toplayıcı.
kullanım
V8, hem 32-bit hem de 64-bit sürümlerinde x86 , ARM veya MIPS komut seti mimarilerini derleyebilir ; ayrıca sunucularda kullanılmak üzere PowerPC ve IBM s390'a taşınmıştır .
V8 bir tarayıcıda kullanılabilir veya bağımsız projelere entegre edilebilir. V8 aşağıdaki yazılımda kullanılır:
- Google Chrome ve Brave , Opera , Vivaldi ve Microsoft Edge dahil olmak üzere diğer Chromium tabanlı web tarayıcıları .
- Couchbase veritabanı sunucusu
- Deno çalışma zamanı ortamı
- Atom ve Visual Studio Code metin düzenleyicileri tarafından kullanılan elektron masaüstü uygulama çerçevesi
- MarkLogic veritabanı sunucusu
- NativeScript mobil uygulama çerçevesi
- Node.js çalışma zamanı ortamı
- Qt Hızlı çalışma zamanı ortamı
Ayrıca bakınız
- Blink , Chromium tarayıcı motoru
- JavaScript motorlarının karşılaştırılması