Grundare av QEMU och FFmpeg har publicerat JavaScript-motorn Micro QuickJS

Den franske matematikern Fabrice Bellard, som grundade projekten QEMU, FFmpeg, BPG, QuickJS, TinyGL och TinyCC, har publicerat en ny JavaScript-motor för inbĂ€ddade system — Micro QuickJS, som kan kompilera och köra JavaScript-program med endast 10 KB RAM. Tillsammans med C-biblioteket tar motorn upp cirka 100 KB permanent minne. Det Ă€r möjligt att kompilera JavaScript till bytekod och köra bytekoden separat. Projektets kod Ă€r skriven i C och distribueras under MIT-licensen.

Motorn stödjer en delmÀngd av JavaScript-sprÄket, nÀra specifikationen ECMAScript 5 (ES2019), men stÀller striktare krav pÄ koden och tillÄter inte anvÀndning av vissa ineffektiva eller felaktiga JavaScript-konstruktioner. Till exempel mÄste globala variabler deklareras med nyckelordet "var", anvÀndning av "with" Àr förbjudet, arrayer kan inte ha tomma platser, initialisering vid deklaration av typen "new Number(1)" Àr omöjlig, och access till lokala variabler frÄn eval Àr inte tillÄten.

Prestandan för Micro QuickJS Ă€r nĂ€ra QuickJS-motorn, som har utvecklats av Fabrice sedan 2019. I Micro QuickJS anvĂ€nds delar av koden frĂ„n QuickJS, men arkitekturen Ă€r i mĂ„nga avseenden annorlunda och utformad för minimalt minnesutnyttjande. Till exempel anvĂ€nder Micro QuickJS en spĂ„rande skrĂ€pinsamlar, medan QuickJS anvĂ€nder referensrĂ€kning. Överheaden för skrĂ€pinsamlingssystemet Ă€r bara nĂ„gra bitar per allokerad minnesblock. För minnesallokering anvĂ€nds en egen allokerare som inte Ă€r beroende av den biblioteksfunktionen malloc().

Andra skillnader frÄn QuickJS: den anvÀnder inte stackar virtuell maskin; och en annan intern representation av objekt; lagring av strÀngar i UTF-8-kodning; generering av standardbiblioteket vid kompilering och lagring av det i permanent minne, vilket skapar endast nÄgra objekt i RAM; en parser nÀra QuickJS, men utan rekursion; kombinera generering av bytekod och optimering i ett enda pass (QuickJS har flera pass för optimering).

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster