QuickJS - kerge JavaScripti mootor, mille on välja töötanud QEMU ja FFmpeg asutaja

JavaScript

Prantsuse matemaatik Fabrice Bellard, kes rajasid QEMU ja FFmpeg projektid ning lõid ka Pi-arvu arvutamiseks kiireima valemi ja arendasid BPG-pildivormingu.

Fabrice Bellard on tuntum kui QEMU juhtiv arendaja (emulaator, mis jäljendab erinevaid riistvaraarhitektuure) ja Tiny C Compiler (tcc), väga väike, kuid põhjalik C-kompilaator, mis on algselt kirjutatud “Rahvusvahelise varjatud C-koodi võistluse” võitmiseks.

Nüüd hiljuti jagas avalikkusele oma uue teose esimest versiooni mis on JavaScripti ja see on uus mootor nimega JavaScript QuickJS.

Teave JavaScripti QuickJS-i kohta

QuickJS JavaScripti mootor see on kompaktne ja mõeldud integreerimiseks teistesse süsteemidesse. Projekti kood See on kirjutatud C-keeles ja levitatud MIT-litsentsi all. Saadaval on ka mootori ülesehitus, mis on Emscripteni abil koostatud WebAssembly-sse ja sobib brauserites töötamiseks.

JavaScripti juurutamine toetab ES2019 spetsifikatsioone, sealhulgas mooduleid, asünkroonseid generaatoreid ja volikirju.

QuickJS JavaScripti mootoris toetatakse JavaScripti valikulisi mittestandardseid matemaatilisi laiendeid, näiteks BigInt ja BigFloat tüübid, samuti operaatori ülekoormus.

Jõudluse järgi edestab QuickJS oluliselt olemasolevaid analoogeNäiteks ping-v8 testis on XS-mootor 35% ees, DukTape enam kui kahekordistunud, JerryScript kolm korda ja MuJS seitse korda.

Lisaks raamatukogule, et mootor rakendusse kinnitada, projekt pakub ka qjs-tõlki, mida saab kasutada JavaScripti koodi käivitamiseks käsurealt.

Lisaks qjsc kompilaator on saadaval ja suudab väljastada käivitatavaid faile, mida saab eraldi käivitada ja et need ei vaja väliseid sõltuvusi.

QuickJS JavaScripti mootori peamistest omadustest järgmised punktid paistavad silma:

  • Kompaktne ja hõlpsasti integreeritav teistesse projektidesse. Kood sisaldab ainult mõnda C-faili, mille koostamiseks pole vaja väliseid sõltuvusi. Lihtne kompileeritud rakendus võtab umbes 190 Kb
  • Väga kõrge jõudlus ja kiire käivitamise aeg. Tuuma tavalise töölaua käivitamisel kulub 56 tuhande ühilduvustesti ECMAScript testimiseks umbes 100 sekundit. Käitusaja lähtestamine võtab vähem kui 300 mikrosekundit
  • Peaaegu täielik tugi ES2019 spetsifikatsioonile ja täielik tugi rakendusele "B", mis määratleb vanemate veebirakendustega ühilduvuse komponendid
  • Viige lõpule kõigi ECMAScript Test Suite'i testide läbimine
  • Toetus Javascripti koodi kompileerimiseks käivitatavateks failideks ilma väliste sõltumusteta
  • Prügikoguja tugineb võrdlusloendusele ilma tsüklilise puhastamiseta, võimaldades prognoositavat käitumist ja vähendades mälu tarbimist
  • Matemaatiliste arvutuste laienduste komplekt JavaScripti keeles
  • Koor käsurea režiimis koodi täitmiseks, mis toetab kontekstuaalset koodi esiletõstmist
  • Kompaktne standardraamatukogu üle C-teegi

Lisaks sellele Teisalt arendab projekt ka kolme C-teeki seotud osapooled, kes osalevad QuickJS-is ja sobivad individuaalseks kasutamiseks:

  1. freegexp: väike ja kiire regexi teek, mis vastab JavaScripti ES2019 spetsifikatsioonile
  2. libunikood: väike Unicode'i teek, mis toetab juhtumite teisendamist, Unicode'i normaliseerimist, Unicode'i skriptitaotlusi, Unicode'i üldkategooria päringuid ja kõiki Unicode'i binaarseid omadusi
  3. libbf: See on ka väike raamatukogu, mis rakendab IEEE 754 ujukomaoperatsioone ja transtsendentaalseid funktsioone täpse ümardamisega. Seda peetakse eraldi projektina.

Kuidas hankida SavaScript QuickJS?

Lähtekoodi saab kompileerimiseks alla laadida aadressilt järgmine link. Pärast installimist antakse Makefile, et kompileerida mootor Linuxis või Mac OS / X-is.

Samal lingil saate tutvuda QuickJS-i dokumentatsiooniga rohkem informatsiooni. See annab ka võrdlusteabe, mis näitab QuickJS-i jõudlust Google'i V8 mootoriga ning võrdlust selle ja teiste sama kategooria tööriistade vahel.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutav: AB Internet Networks 2008 SL
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.