V8 (JavaScript mühərriki)

açıq mənbəli JavaScript mühərriki From Wikipedia, the free encyclopedia

V8 (JavaScript mühərriki)
Remove ads

V8ChromiumGoogle Chrome veb-brauzerləri üçün Chromium Project tərəfindən hazırlanmış azad və açıq mənbəli JavaScriptWebAssembly mühərriki. Layihənin yaradıcısı Lars Bakdır.[4] V8 mühərrikinin ilk versiyası Chrome-un ilk versiyası ilə eyni vaxtda, 2 sentyabr 2008-ci ildə buraxıldı. O, həmçinin server tərəfdə, məsələn, Couchbase, DenoNode.js-də istifadə edilmişdir.

Remove ads

Tarixi

V8 assembleri Strongtalk Assembler-ə əsaslanır.[5] 7 dekabr 2010-cu ildə, sürətində təkmilləşdirmələr edilmiş "Crankshaft" adlı yeni kompilyasiya infrastrukturu buraxıldı.[6] 2015-ci ildə Chrome-un 41-ci versiyasında asm.js kimi əvvəllər tələb olunan iş yüklərində daha çox performans təkmilləşdirmələri təmin etmək üçün TurboFan layihəsi əlavə edildi.[7] V8-in tərtibatının çox hissəsi Sun Microsystems tərəfindən hazırlanmış Java HotSpot Virtual Machine-dən təsirlənib, yeni icra konveyerləri HotSpot-la çox oxşardır.

2016-cı ildə TurboFan və Crankshaft ilə müqayisədə kiçik yaddaşlı Android telefonlarında yaddaş istifadəsini azaltmaq məqsədi ilə V8-ə Ignition interpretatoru əlavə edildi.[8] Ignition registr əsaslı maşındır və HotSpot tərəfindən istifadə edilən şablon interpretatoruna oxşar (tam eyni olmasa da) dizaynı paylaşır.

2017-ci ildə V8 Ignition (interpretator) və TurboFan-dan (optimallaşdırıcı kompilyator) ibarət yeni kompilyator konveyeri buraxdı. V8 versiyası 5.9-dan başlayaraq, Full-codegen (ilkin baza kompilyatoru) və Crankshaft artıq V8-də JavaScript-in icrası üçün istifadə edilmir, çünki komanda onların artıq yeni JavaScript dili xüsusiyyətləri və bu xüsusiyyətlərin tələb olunan optimallaşdırılması ilə ayaqlaşa bilməyəcəyinə inanırdı.[9]

2021-ci ildə HotSpot tərəfindən istifadə edilən profilləşdirən C1 Compilator-a birbaşa paralel olaraq V8 daxilində mövcud TurboFan kompilyatorunu tamamlayan SparkPlug kompilyatorunun buraxılışı ilə yeni səviyyəli kompilyasiya konveyeri təqdim edildi.

Remove ads

Dizaynı

V8 əvvəlcə öz analizatoru ilə abstrakt sintaksis ağacı yaradır.[10] Sonra Ignition daxili V8 bayt kodu formatından istifadə edərək bu sintaksis ağacından bayt-kod yaradır.[11] TurboFan bu bayt-kodu maşın koduna çevirir. Başqa sözlə, V8, ECMAScript-i yerinə yetirməzdən əvvəl JIT kompilyasiyası istifadə edərək birbaşa yerli maşın kodunu kompilyasiya edir.[12] Kompilyasiya edilmiş kod, kodun icra profilinin evristikası əsasında işləmə mühitində əlavə olaraq dinamik olaraq optimallaşdırılır (və yenidən optimallaşdırılır). İstifadə olunan optimallaşdırma üsullarına sətiriçi kod, böyük iş mühiti xüsusiyyətlərinin silinməsi və daxili keşləmə daxildir. Tullantı toplayıcı generativ artımlı kollektordur.[13]

Remove ads

İstifadəsi

V8 həm 32-bit, həm də 64-bit nəşrlərində x86, ARM və ya MIPS təlimat dəsti arxitekturalarını kompilyasiya edə bilər. O, əlavə olaraq serverlərdə istifadə üçün PowerPC[14]IBM ESA/390-a[15][16] keçirilib.[17][18]

V8 brauzerdə istifadə edilə bilər və ya müstəqil layihələrə inteqrasiya oluna bilər. V8 aşağıdakı proqram təminatında istifadə olunur:

İstinadlar

Xarici keçidlər

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads