เปิดตัวครั้งแรกของ wasm3 ซึ่งเป็นล่าม WebAssembly ที่รวดเร็ว

มีอยู่ ฉบับพิมพ์ครั้งแรก wasm3ซึ่งเป็นล่ามโค้ดระดับกลาง WebAssembly ที่รวดเร็วมากซึ่งมีจุดประสงค์หลักเพื่อใช้ในการรันแอปพลิเคชัน WebAssembly บนไมโครคอนโทรลเลอร์และแพลตฟอร์มที่ไม่มีการใช้งาน JIT สำหรับ WebAssembly มีหน่วยความจำไม่เพียงพอที่จะรัน JIT หรือไม่สามารถสร้างเพจหน่วยความจำที่ปฏิบัติการได้ซึ่งจำเป็นต่อการใช้งาน JIT . รหัสโครงการเขียนด้วยภาษา C และ จัดจำหน่ายโดย ภายใต้ใบอนุญาต MIT

Wasm3 ผ่านไป การทดสอบ เข้ากันได้กับข้อกำหนด WebAssembly 1.0 และสามารถใช้รันแอปพลิเคชัน WASI จำนวนมาก โดยให้ประสิทธิภาพต่ำกว่าเอ็นจิ้น JIT เพียง 4-5 เท่า (ลิฟต์, รถเครน) และต่ำกว่าการเรียกใช้โค้ดแบบเนทีฟถึง 11.5 เท่า เมื่อเปรียบเทียบกับล่าม WebAssembly อื่น ๆ (วัค, ชีวิต, Wasm-ไมโคร-รันไทม์) wasm3 เร็วขึ้น 15.8 เท่า

ในการรัน wasm3 คุณต้องมีหน่วยความจำโค้ด 64Kb และ RAM 10Kb ซึ่งช่วยให้คุณใช้โปรเจ็กต์เพื่อรันแอปพลิเคชันที่คอมไพล์ใน WebAssembly บน ไมโครคอนโทรลเลอร์เช่น Arduino MKR*, Arduino Due, อนุภาคโฟตอน, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166)
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) และ ATmega1284 รวมถึงบนบอร์ดและคอมพิวเตอร์ที่ใช้สถาปัตยกรรม x86, x64, ARM, MIPS, RISC-V และ Xtensa ระบบปฏิบัติการที่รองรับ ได้แก่ Linux (รวมถึงเราเตอร์ที่ใช้ OpenWRT), Windows, macOS, Android และ iOS นอกจากนี้ยังสามารถคอมไพล์ wasm3 ลงในโค้ดระดับกลางของ WebAssembly เพื่อเรียกใช้ล่ามในเบราว์เซอร์หรือสำหรับการดำเนินการแบบซ้อน (การโฮสต์ด้วยตนเอง)

ประสิทธิภาพสูงเกิดขึ้นได้จากการใช้เทคโนโลยีในล่าม เครื่องแมสซี่เมต้า (M3) ซึ่งแปลโค้ดไบต์ไปข้างหน้าเป็นการดำเนินการสร้างโค้ดหลอกเครื่องจักรที่มีประสิทธิภาพมากขึ้น เพื่อลดค่าใช้จ่ายในการถอดรหัสไบต์ และแปลงโมเดลการดำเนินการเครื่องเสมือนแบบสแต็กเป็นวิธีการแบบรีจิสเตอร์ที่มีประสิทธิภาพมากขึ้น การดำเนินการใน M3 คือฟังก์ชัน C ซึ่งมีอาร์กิวเมนต์เป็นรีจิสเตอร์เครื่องเสมือนที่สามารถแมปกับรีจิสเตอร์ CPU ได้ ลำดับการดำเนินการปรับให้เหมาะสมที่เกิดขึ้นบ่อยครั้งจะถูกแปลงเป็นการดำเนินการสรุป

นอกจากนี้ยังสามารถสังเกตได้ ผลการวิจัย การกระจาย
WebAssembly บนเว็บ หลังจากวิเคราะห์ไซต์ที่ได้รับความนิยมสูงสุด 948 แห่งตามการจัดอันดับของ Alexa นักวิจัยพบว่ามีการใช้ WebAssembly ในไซต์ 1639 แห่ง (0.17%) เช่น 1 ใน 600 ไซต์ โดยรวมแล้ว มีการดาวน์โหลดโมดูล WebAssembly บนเว็บไซต์ทั้งหมด 1950 โมดูล โดย 150 โมดูลไม่ซ้ำกัน เมื่อพิจารณาขอบเขตการใช้งาน WebAssembly มีข้อสรุปที่น่าผิดหวัง ในกรณีมากกว่า 50% WebAssembly ถูกใช้เพื่อจุดประสงค์ที่เป็นอันตราย เช่น สำหรับการขุด cryptocurrency (55.7%) และซ่อนโค้ดของสคริปต์ที่เป็นอันตราย (0.2%) . การใช้งาน WebAssembly ที่ถูกต้องตามกฎหมาย ได้แก่ การเรียกใช้ไลบรารี่ (38.8%) การสร้างเกม (3.5%) และการเรียกใช้โค้ดที่ไม่ใช่ JavaScript แบบกำหนดเอง (0.9%) ใน 14.9% ของกรณี มีการใช้ WebAssembly เพื่อวิเคราะห์สภาพแวดล้อมเพื่อระบุตัวตนผู้ใช้ (ลายนิ้วมือ)

เปิดตัวครั้งแรกของ wasm3 ซึ่งเป็นล่าม WebAssembly ที่รวดเร็ว

ที่มา: opennet.ru

เพิ่มความคิดเห็น