Krijuesi i QEMU dhe FFmpeg publikoi motorin JavaScript Micro QuickJS

Matematikani francez Fabrice Bellard, i cili dikur themeloi projekte si QEMU, FFmpeg, BPG, QuickJS, TinyGL dhe TinyCC, ka publikuar njĂ« motor JavaScript tĂ« ri pĂ«r sistemet e integruara — Micro QuickJS, i cili Ă«shtĂ« nĂ« gjendje tĂ« kompilihet dhe ekzekutojĂ« programe JavaScript, duke konsumuar vetĂ«m 10 KB RAM. SĂ« bashku me bibliotekĂ«n C, motori merr rreth 100 KB memorie tĂ« pĂ«rhershme. ËshtĂ« e mundur tĂ« kompilohet JavaScript nĂ« bajt kod dhe tĂ« ekzekutohet veçmas ky bajt kod. Kodi i projektit Ă«shtĂ« shkruar nĂ« gjuhĂ«n C dhe shpĂ«rndahet nĂ«n licencĂ«n MIT.

Motoja mbĂ«shtet njĂ« nĂ«ngrup tĂ« gjuhĂ«s JavaScript, e cila Ă«shtĂ« e afĂ«rt me specifikimin ECMAScript 5 (ES2019), por ka kĂ«rkesa mĂ« tĂ« rrepta pĂ«r kodin dhe nuk lejon pĂ«rdorimin e disa konstrukcioneve JavaScript qĂ« janĂ« joefikase ose qĂ« shkaktojnĂ« gabime. PĂ«r shembull, variablat globale duhet tĂ« shpallen domosdoshmĂ«risht me fjalĂ«n kyçe “var”, pĂ«rdorimi i “with” Ă«shtĂ« i ndaluar, vargjet nuk mund tĂ« kenĂ« boshllĂ«qe, inicializimi i deklaratave si “new Number(1)” nuk Ă«shtĂ« i mundur, dhe nuk Ă«shtĂ« e mundur qĂ« tĂ« aksesohen variablat lokale nga eval.

Performanca e Micro QuickJS është afërsisht e barabartë me motorin QuickJS, i zhvilluar nga Fabrice që nga viti 2019. Micro QuickJS përdor një pjesë të kodit nga motorri QuickJS, por arkitektura është shumë e ndryshme dhe është projektuar për konsum minimal të memories. Për shembull, në Micro QuickJS është përdorur një mbledhës ndihmës që gjurmon, ndërsa në QuickJS është përdorur numërimi i referencave. Shpenzimet e mbledhësit ndihmës janë vetëm disa bita për çdo bllok të përkrahuar të memories. Për alokimin e memories, përdoret një alokator i brendshëm, i pavarur nga funksioni bibliotekor malloc().

Dallimet e tjera nga QuickJS: nuk përdor një stek; një përfaqësim të ndryshëm të brendshëm të objekteve; ruajtja e vargjeve në kodimin UTF-8; gjenerimi i bibliotekës standarde gjatë kompilimit dhe ruajtja e saj në memorie të përhershme me krijimin në RAM të disa objekteve; një parser që është afër QuickJS, por që nuk përdor rekursivitet; bashkimin në një kalim të vetëm të gjenerimit të bajt kodit dhe optimizimit (në QuickJS ka disa kalime për optimizim). makina virtualeMatematikani francez Fabrice Bellard, i cili dikur themeloi projekte QEMU, FFmpeg, BPG, QuickJS, TinyGL dhe TinyCC, ka publikuar një motor JavaScript të ri për sistemet e integruara - Micro QuickJS.

Burimi: opennet.ru

Bleni hostin e besueshĂ«m pĂ«r faqet me mbrojtje nga DDoS, VPS VDS servera đŸ”„ Bli hostin e besueshĂ«m pĂ«r faqet me mbrojtje nga DDoS, VPS VDS servera | ProHoster