Ranskalainen matemaatikko Fabrice Bellard, joka perusti QEMU- ja FFmpeg-projektit ja loi myös nopeimman kaavan Pi-luvun laskemiseksi ja kehitti BPG-kuvamuodon.
Fabrice Bellard on tunnetaan parhaiten QEMU: n pääkehittäjänä (emulaattori, joka jäljittelee erilaisia laitteistoarkkitehtuureja) ja Tiny C Compiler (tcc), hyvin pieni, mutta kattava C-kääntäjä, joka on alun perin kirjoitettu voittaakseen "International Obfuscated C Code Contest".
Nyt äskettäin jakoi yleisölle ensimmäisen version uudesta teoksestaan joka on JavaScriptissä ja tämä on uusi moottori nimeltä JavaScript QuickJS.
Tietoja JavaScript QuickJS: stä
QuickJS JavaScript -moottori se on kompakti ja suunniteltu liitettäväksi muihin järjestelmiin. Projektin koodi Se on kirjoitettu C-muodossa ja jaettu MIT-lisenssin alla. Saatavana on myös moottoriversio, joka on koottu WebAssembly-sovellukseen Emscripten-sovelluksella ja sopii käytettäväksi selaimissa.
JavaScript-toteutus tukee ES2019-määritystä, mukaan lukien moduulit, asynkroniset generaattorit ja välityspalvelimet.
QuickJS JavaScript -moottorissa tuetaan valinnaisia epätyypillisiä JavaScript-matemaattisia laajennuksia, kuten BigInt- ja BigFloat-tyypit, sekä käyttäjän ylikuormitus.
Suorituskyvyn perusteella QuickJS ylittää merkittävästi saatavilla olevat analogitEsimerkiksi penkki-v8-testissä XS-moottori on 35% edellä, DukTape yli kaksinkertaistunut, JerryScript kolme kertaa ja MuJS seitsemän kertaa.
Kirjaston lisäksi upottaa moottori sovellukseen, projekti tarjoaa myös qjs-tulkin, jota voidaan käyttää JavaScript-koodin suorittamiseen komentoriviltä.
Lisäksi, qjsc-kääntäjä on käytettävissä ja pystyy tuottamaan suoritettavia tiedostoja, jotka voidaan suorittaa erikseen ja että nämä eivät vaadi ulkoisia riippuvuuksia.
QuickJS JavaScript -moottorin pääominaisuuksista seuraavat kohdat erottuvat:
- Kompakti ja helppo integroida muihin projekteihin. Koodi sisältää vain muutaman C-tiedoston, joiden rakentaminen ei vaadi ulkoisia riippuvuuksia. Yksinkertainen koottu sovellus vie noin 190 kt
- Erittäin korkea suorituskyky ja nopeat käynnistysajat. 56 tuhannen ECMAScript-yhteensopivuustestin läpäiseminen kestää noin 100 sekuntia, kun normaalia työpöytää suoritetaan ytimessä. Ajonaikainen alustus kestää alle 300 mikrosekuntia
- Lähes täysi tuki ES2019-määritykselle ja täysi tuki B-sovellukselle, joka määrittelee komponentit yhteensopivuuteen vanhempien verkkosovellusten kanssa
- Suorita kaikki ECMAScript Test Suite -testit läpi
- Tuki Javascript-koodin kääntämiseen suoritettaviksi tiedostoiksi ilman ulkoisia riippuvuuksia
- Jätteenkerääjä perustuu vertailulaskentaan ilman syklistä puhdistusta, mikä mahdollistaa ennakoitavan käyttäytymisen ja vähentää muistin kulutusta
- Joukko laajennuksia matemaattisia laskelmia varten JavaScript-kielellä
- Kuori koodin suorittamiseksi komentorivitilassa, joka tukee kontekstuaalista koodin korostusta
- Kompakti standardikirjasto C-kirjaston yli
Tämän lisäksi Toisaalta projektissa kehitetään myös kolmea C-kirjastoa QuickJS: ään liittyvät ja henkilökohtaiseen käyttöön soveltuvat lähipiirit
- freegexp: pieni ja nopea regex-kirjasto, joka täyttää JavaScript ES2019 -määrityksen
- libunicode: pieni Unicode-kirjasto, joka tukee tapausten muuntamista, Unicode-normalisointia, Unicode-komentosarjapyyntöjä, Unicode-luokan kyselyitä ja kaikkia Unicode-binaarisia ominaisuuksia
- libbf: Tämä on myös pieni kirjasto, joka toteuttaa IEEE 754: n liukulukuoperaatiot ja transsendenttiset toiminnot tarkalla pyöristyksellä. Se pidetään erillisenä projektina.
Kuinka hankkia SavaScript QuickJS?
Lähdekoodin voi ladata kääntämistä varten osoitteesta seuraava linkki. Asennuksen jälkeen toimitetaan Makefile, joka kääntää moottorin Linux- tai Mac OS / X -käyttöjärjestelmään.
Samasta linkistä voit tutustua QuickJS-dokumentaatioon Lisätietoja. Se tarjoaa myös vertailutietoja, jotka osoittavat QuickJS-suorituskyvyn Googlen V8-moottorilla, sekä vertailun sen ja muiden saman luokan työkalujen välillä.