Firefox เริ่มใช้ OdinMonkey รีดประสิทธิภาพของ JavaScript

by mk
23 March 2013 - 03:27

Firefox เริ่มใช้เอนจิน OdinMonkey เพื่อรีดประสิทธิภาพของ JavaScript ในเบราว์เซอร์ให้ดีขึ้นอีกหลายเท่าตัว

หลักการทำงานของ OdinMonkey จะซับซ้อนอยู่บ้างครับ อธิบายแบบสั้นๆ คือ JavaScript ไม่ได้ออกแบบมาสำหรับงานประมวลผลหนักๆ ตั้งแต่แรก ทำให้งานบางอย่างเช่นการคำนวณทศนิยม (floating point) ไม่มีประสิทธิภาพมากนัก ฝั่งของกูเกิลจึงแก้ปัญหานี้ด้วย NaCl หรือการนำโค้ดแบบ native ไปรันร่วมกับโค้ด JavaScript แทน

อีกทางเลือกหนึ่งในการแก้ปัญหาคือโครงการ asm.js ใช้หลักการแปลงโค้ด JavaScript บางส่วนที่เกี่ยวกับการคำนวณคณิตศาสตร์เป็นภาษาใหม่ที่เรียกว่า asm.js ซึ่งมีรูปแบบภาษาที่ตายตัวมากกว่า (32-bit integer, 64-bit double precision, จำกัดชนิดของ Array) ทำให้การประมวลผลทำได้เร็วขึ้นเพราะคอมไพล์แบบ ahead-of-time ได้

การแปลงโค้ด JavaScript เป็น asm.js เป็นหน้าที่ของโปรแกรมแปลงโค้ดเช่น Emscripten ที่ใช้กันแพร่หลายอยู่แล้วในการแปลง C/C++ เป็น JavaScript

สิ่งที่ Mozilla คือเพิ่มตัวคอมไพล์โค้ด asm.js ลงใน Firefox ซึ่งก็คือโครงการ OdinMonkey นั่นเอง ผลการทดสอบออกมาแล้วพบว่า Firefox OdinMonkey ทำงานได้เร็วมากๆ คือช้ากว่าโค้ดแบบ native เพียงแค่ 2 เท่า ในขณะที่ Firefox รุ่นปกติใช้เวลามากถึง 12 เท่าของโค้ดแบบ native

ตอนนี้ OdinMonkey เริ่มใช้งานใน Firefox Nightly บนวินโดวส์และลินุกซ์แล้ว ซึ่งทาง Mozilla จะค่อยๆ เพิ่มเข้ามาในแพลตฟอร์มอื่นต่อไป ถ้าไม่มีบั๊กอะไรร้ายแรงก็น่าจะได้เห็นใน Firefox 22 ช่วงเดือนมิถุนายนครับ

ที่มา - The H Online

Blognone Jobs Premium