QuickJS - เอ็นจิ้น JavaScript น้ำหนักเบาที่พัฒนาโดยผู้ก่อตั้ง QEMU และ FFmpeg

JavaScript

Fabrice Bellard นักคณิตศาสตร์ชาวฝรั่งเศสซึ่งเป็นผู้ก่อตั้งโครงการ QEMU และ FFmpeg และเป็นผู้ที่สร้างสูตรที่เร็วที่สุดในการคำนวณหมายเลข Pi และพัฒนารูปแบบภาพ BPG

Fabrice Bellard คือ เป็นที่รู้จักกันดีในฐานะหัวหน้าผู้พัฒนา QEMU (โปรแกรมจำลองที่เลียนแบบสถาปัตยกรรมฮาร์ดแวร์ต่างๆ) และ Tiny C Compiler (tcc) ซึ่งเป็นคอมไพเลอร์ C ขนาดเล็กมาก แต่มีความครอบคลุมซึ่งเดิมเขียนขึ้นเพื่อชนะ“ International Obfuscated C Code Contest”

ตอนนี้เมื่อเร็ว ๆ นี้ แบ่งปันผลงานใหม่รุ่นแรกของเขาสู่สาธารณะ ซึ่งอยู่ใน JavaScript และนี่คือ เอ็นจิ้นใหม่ที่เรียกว่า JavaScript QuickJS

เกี่ยวกับ JavaScript QuickJS

เอ็นจิ้น QuickJS JavaScript มีขนาดกะทัดรัดและออกแบบมาเพื่อรวมเข้ากับระบบอื่น ๆ รหัสโครงการ เขียนด้วยภาษา C และเผยแพร่ภายใต้ใบอนุญาต MIT นอกจากนี้ยังมีโปรแกรมสร้างที่รวบรวมไว้ใน WebAssembly โดยใช้ Emscripten และเหมาะสำหรับการทำงานในเบราว์เซอร์

การใช้งาน JavaScript รองรับข้อกำหนด ES2019 รวมถึงโมดูลเครื่องกำเนิดไฟฟ้าแบบอะซิงโครนัสและพร็อกซี

ในเอ็นจิ้น QuickJS JavaScript รองรับส่วนขยายทางคณิตศาสตร์ที่ไม่ได้มาตรฐานสำหรับ JavaScriptเช่นประเภท BigInt และ BigFloat รวมถึงตัวดำเนินการที่ทำงานหนักเกินไป

ตามประสิทธิภาพ QuickJS มีประสิทธิภาพดีกว่าอะนาล็อกที่มีอยู่อย่างมากตัวอย่างเช่นในการทดสอบ bench-v8 เครื่องยนต์ XS มีความเร็วสูงกว่า 35% DukTape มากกว่าสองเท่า JerryScript สามเท่าและ MuJS เจ็ดเท่า

นอกจากไลบรารีที่จะฝังเอ็นจิ้นในแอปพลิเคชันแล้ว โครงการนี้ยังมีล่าม qjs ซึ่งสามารถใช้เพื่อรันโค้ด JavaScript จากบรรทัดคำสั่ง

นอกจากนี้ คอมไพเลอร์ qjsc พร้อมใช้งานและสามารถส่งออกไฟล์ปฏิบัติการที่สามารถรันแยกกันได้ และสิ่งเหล่านี้ไม่ต้องการการอ้างอิงภายนอก

คุณสมบัติหลักของเครื่องมือ QuickJS JavaScript ประเด็นต่อไปนี้โดดเด่น:

  • กะทัดรัดและง่ายต่อการรวมเข้ากับโครงการอื่น ๆ โค้ดนี้มีไฟล์ C เพียงไม่กี่ไฟล์ที่ไม่ต้องการการอ้างอิงภายนอกในการสร้าง แอปพลิเคชันที่รวบรวมอย่างง่ายใช้เวลาประมาณ 190 Kb
  • ประสิทธิภาพสูงมากและเวลาเริ่มต้นที่รวดเร็ว การผ่านการทดสอบความเข้ากันได้กับ ECMAScript 56 ครั้งจะใช้เวลาประมาณ 100 วินาทีเมื่อเรียกใช้เดสก์ท็อปปกติบนเคอร์เนล การเริ่มต้นรันไทม์ใช้เวลาน้อยกว่า 300 ไมโครวินาที
  • การสนับสนุนเกือบเต็มรูปแบบสำหรับข้อกำหนด ES2019 และการสนับสนุนเต็มรูปแบบสำหรับแอปพลิเคชัน "B" ซึ่งกำหนดส่วนประกอบสำหรับความเข้ากันได้กับเว็บแอปพลิเคชันรุ่นเก่า
  • กรอกข้อความของการทดสอบทั้งหมดของ ECMAScript Test Suite
  • รองรับการคอมไพล์โค้ด Javascript ลงในไฟล์ปฏิบัติการโดยไม่ต้องพึ่งพาภายนอก
  • ตัวเก็บขยะอาศัยการนับอ้างอิงโดยไม่ต้องล้างข้อมูลตามวัฏจักรทำให้สามารถคาดเดาพฤติกรรมได้และลดการใช้หน่วยความจำ
  • ชุดของส่วนขยายสำหรับการคำนวณทางคณิตศาสตร์ในภาษา JavaScript
  • เชลล์สำหรับรันโค้ดในโหมดบรรทัดคำสั่งซึ่งรองรับการไฮไลต์โค้ดตามบริบท
  • ไลบรารีมาตรฐานขนาดกะทัดรัดเหนือไลบรารี C

นอกเหนือจากนี้ ในทางกลับกันโครงการกำลังพัฒนาไลบรารี C สามแห่ง ผู้เกี่ยวข้องที่เกี่ยวข้องกับ QuickJS และเหมาะสำหรับการใช้งานส่วนบุคคล:

  1. freegeexp: ไลบรารี regex ขนาดเล็กและรวดเร็วซึ่งเป็นไปตามข้อกำหนดของ JavaScript ES2019
  2. ลิบูนิโค้ด: ไลบรารี Unicode ขนาดเล็กที่สนับสนุนการแปลงเคสการทำให้เป็นมาตรฐาน Unicode คำขอสคริปต์ Unicode การสืบค้นหมวดหมู่ทั่วไปของ Unicode และคุณสมบัติไบนารีทั้งหมดของ Unicode
  3. ลิบบ์: นอกจากนี้ยังเป็นไลบรารีขนาดเล็กที่ใช้การดำเนินการจุดลอยตัว IEEE 754 และฟังก์ชันที่ยอดเยี่ยมพร้อมการปัดเศษที่แน่นอน เก็บไว้เป็นโครงการแยกต่างหาก

วิธีรับ SavaScript QuickJS

การดาวน์โหลดซอร์สโค้ดสำหรับการคอมไพล์สามารถทำได้จาก ลิงค์ต่อไปนี้. หลังจากการติดตั้ง Makefile จะถูกจัดเตรียมไว้เพื่อคอมไพล์เอ็นจิ้นบน Linux หรือ Mac OS / X

ในลิงค์เดียวกันคุณสามารถดูเอกสาร QuickJS สำหรับข้อมูลเพิ่มเติม. นอกจากนี้ยังให้ข้อมูลมาตรฐานที่แสดงประสิทธิภาพ QuickJS กับเครื่องยนต์ V8 ของ Google และการเปรียบเทียบระหว่างมันกับเครื่องมืออื่น ๆ ในหมวดหมู่เดียวกัน


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. รับผิดชอบข้อมูล: AB Internet Networks 2008 SL
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา