ยุคนี้แรมแพง ผู้สร้าง FFmpeg, QEMU เปิดโครงการ MicroQuickJS รันจาวาสคริปต์ด้วยแรม 10KB
Body
Fabrice Bellard โปรแกรมเมอร์ฝรั่งเศสระดับตำนานที่สร้างโครงการสำคัญๆ เช่น FFmpeg, QEMU, Tiny C Compiler เปิดโครงการใหม่ MicroQuickJS (mjs) เอนจินจาวาสคริปต์ที่เน้นการประหยัดแรมถึงขั้นสุด ขนาดไบนารีต่ำกว่า 100KB และใช้แรมตอนรันจริง 10KB เท่านั้น
ก่อนหน้านี้ Bellard เคยสร้าง QuickJS (qjs) เมื่อปี 2019 ที่ผ่านมา โดยมุ่งเป้าเป็นเอนจินจาวาสคริปต์ขนาดเล็กเช่นกัน แต่ qjs นั้นยังมีขนาดไบนารีอยู่ที่ 387KB เทียบกับ V8 ใน Chrome ขนาดไบนารี 19.7MB รอบนี้ mjs เปลี่ยนตัว garbage collector เพื่อให้ทำงานในแรมน้อยๆ ได้ และไม่ใช้ stack ของ CPU พร้อมกับรองรับจาวาสคริปต์ไม่ครบทุกฟีเจอร์ เช่นรองรับ ES5 strict mode เป็นหลัก
โค้ดทั้งหมดแทบไม่ใช้ API ภายนอกเลย รวมถึง
Salvatore Sanfilippo ผู้สร้าง Redis แสดงความเห็นว่าหากมี mjs ตั้งแต่ปี 2010 เขาคงใช้เอนจินนี้ใน Redis แทน Lua เพราะคุณสมบัติใกล้เคียงกัน คือ เล็ก, เร็ว, เป็นภาษา C มาตรฐาน
ที่มา - GitHub: bellard/mquickjs, Hacker News
lew Wed, 24/12/2025 - 11:06
Continue reading...
Body
Fabrice Bellard โปรแกรมเมอร์ฝรั่งเศสระดับตำนานที่สร้างโครงการสำคัญๆ เช่น FFmpeg, QEMU, Tiny C Compiler เปิดโครงการใหม่ MicroQuickJS (mjs) เอนจินจาวาสคริปต์ที่เน้นการประหยัดแรมถึงขั้นสุด ขนาดไบนารีต่ำกว่า 100KB และใช้แรมตอนรันจริง 10KB เท่านั้น
ก่อนหน้านี้ Bellard เคยสร้าง QuickJS (qjs) เมื่อปี 2019 ที่ผ่านมา โดยมุ่งเป้าเป็นเอนจินจาวาสคริปต์ขนาดเล็กเช่นกัน แต่ qjs นั้นยังมีขนาดไบนารีอยู่ที่ 387KB เทียบกับ V8 ใน Chrome ขนาดไบนารี 19.7MB รอบนี้ mjs เปลี่ยนตัว garbage collector เพื่อให้ทำงานในแรมน้อยๆ ได้ และไม่ใช้ stack ของ CPU พร้อมกับรองรับจาวาสคริปต์ไม่ครบทุกฟีเจอร์ เช่นรองรับ ES5 strict mode เป็นหลัก
โค้ดทั้งหมดแทบไม่ใช้ API ภายนอกเลย รวมถึง
malloc() และ free() ด้วย การรันโค้ดต้องเตรียมหน่วยความจำไว้และเอนจินจะใช้งานหน่วยความจำก้อนนี้Salvatore Sanfilippo ผู้สร้าง Redis แสดงความเห็นว่าหากมี mjs ตั้งแต่ปี 2010 เขาคงใช้เอนจินนี้ใน Redis แทน Lua เพราะคุณสมบัติใกล้เคียงกัน คือ เล็ก, เร็ว, เป็นภาษา C มาตรฐาน
ที่มา - GitHub: bellard/mquickjs, Hacker News
lew Wed, 24/12/2025 - 11:06
Continue reading...