• ปัจจุบันรองรับอุปกรณ์ 8,000 ประเภท เช่น เกมคอนโซล ทีวี เซ็ตท็อปบ็อกซ์ และสตรีมมิงสติก

  • ทุกครั้งที่อัปเดต ต้องออกเนทีฟรีลีสแยกสำหรับแต่ละแพลตฟอร์ม

→ เพื่อแก้ปัญหานี้ จึงใช้ WASM แทน JavaScript เพื่อเพิ่มความเสถียรและปรับปรุงความเร็ว

  • เดิมใช้แอปที่เขียนด้วย JavaScript ร่วมกับ JavaScript VM ที่เขียนด้วย C++

→ ปัจจุบันรันทั้ง JavaScript VM และ WebAssembly VM พร้อมกัน (บนอุปกรณ์รุ่นเก่าที่ยังไม่รองรับ WASM จะใช้เฉพาะ JavaScript)

→ ย้ายระบบระดับล่างจาก JavaScript ไปยัง WASM และอัปเดตไบนารี WASM ด้วย

→ คอมไพล์โค้ดที่เขียนด้วย Rust เป็น WASM แล้วนำมารัน (เร็วกว่า JavaScript 10–25 เท่า)

  • มีแผนจะย้ายระบบเพิ่มเติมไปยัง WASM เพื่อให้ได้ 60FPS และลด input latency

  • WASM VM มีขนาดรวมทั้งโมดูลและอินสแตนซ์เพียงราว 7.5MB จึงประหยัดหน่วยความจำ JavaScript Heap ได้ 30MB

→ เนื่องจากอุปกรณ์จำนวนมากที่ต้องแจกจ่ายมีหน่วยความจำจำกัดมาก การใช้หน่วยความจำจึงเป็นปัจจัยสำคัญ

  • โมดูล WASM เมื่อบีบอัดแล้วมีขนาดเพียงราว 150kb ทำให้เวลาเริ่มต้นทำงานสั้นมาก

  • ข้อดีอย่างหนึ่งของการใช้ Rust คือสามารถใช้ไลบรารีคุณภาพสูงได้ (เช่น egui)

  • การลงทุนใน Rust และ WebAssembly เริ่มเห็นผลลัพธ์แล้ว

→ ตลอดเวลาประมาณ 1 ปี ด้วยโค้ด Rust 37,000 บรรทัด ได้ปรับปรุงประสิทธิภาพ ความเสถียร และการใช้ CPU พร้อมทั้งลดการใช้หน่วยความจำลง

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น