Firefox เริ่มเดินหน้าแยกโพรเซสของเบราว์เซอร์

by mk
19 July 2011 - 14:02

ค่าย Mozilla เริ่มเดินหน้าพัฒนา Firefox ให้แยกโพรเซสการทำงานของเบราว์เซอร์แบบเดียวกับ Chrome

โครงการนี้มีชื่อว่า Electrolysis ซึ่งเราเห็นความคืบหน้าของโครงการนี้ไปบ้างแล้วใน Firefox 3.6.4 ที่แยกโพรเซสของปลั๊กอินออกไป อย่างไรก็ตาม การแยกโพรเซสของแต่ละหน้าต่าง-แท็บยังไม่เกิดขึ้น

Chris Blizzard ผู้บริหารของ Mozilla ได้เขียนอธิบายเป้าหมายของโครงการแยกโพรเซสลงในบล็อก โดยแบ่งเป็นประเด็นต่างๆ ดังนี้

ด้านประสิทธิภาพ การแยกโพรเซสจะช่วยให้ garbage collector สำหรับคืนหน่วยความจำมีขนาดเล็กลง (แต่มีจำนวนมากขึ้น) ทำให้การตอบสนองของหน้าต่างเบราว์เซอร์ดีขึ้น แต่เราก็จะยังเห็นการหยุดทำงานของเบราว์เซอร์เป็นระยะๆ อยู่ดี ("ระยะ" ในที่นี้สั้นมากเป็นหลัก ms นะครับ) ทำให้นักพัฒนาของ Mozilla ต้องปรับแต่งประสิทธิภาพเพิ่มเติมกันอีก และกำหนดว่าการหยุดทำงานจะต้องไม่เกินครั้งละ 50 ms

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

ย่อหน้าข้างต้นคือ "1 DOM = 1 โพรเซส = 1 เธร็ด" แต่ Mozilla ยังคิดไปไกลถึง "1 DOM = 1 โพรเซส = หลายเธร็ด" ซึ่งจะใช้ประโยชน์จากการประมวลผลแบบขนานได้ยิ่งขึ้นไปอีก แต่ยังเป็นอนาคตอีกไกล (รายละเอียดดูในโครงการ RUST)

ด้านการจัดการหน่วยความจำ ปัญหาที่เราเรียกกันว่า memory leak เป็นปัญหาอมตะของแอพพลิเคชันทุกตัวที่เขียนด้วย C/C++ และเปิดโพรเซสค้างไว้นานๆ เพราะหน่วยความจำที่จองเอาไว้จะกระจัดกระจายอยู่ตามตำแหน่งต่างๆ (memory fragmentation) และทำให้การทำงานของแอพพลิเคชันช้าลง

Mozilla บอกว่าจะต้องหากระบวนการจัดการหน่วยความจำที่ดีกว่านี้ ให้การจองหน่วยความจำสามารถพยากรณ์ได้มากขึ้น

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

ด้านความปลอดภัย การแยกโพรเซสจะช่วยให้จำกัดบางโพรเซสไม่ให้เข้าถึงทรัพยากรบนเครื่องได้ สิ่งที่ตามมาคือความปลอดภัยที่ดีขึ้น แต่สถาปัตยกรรมนี้ยังไม่สมบูรณ์นัก เพราะโพรเซสของตัวหน้าต่างยังเข้าถึงทรัพยากรได้มากกว่า ทาง Mozilla บอกว่าจะแก้ปัญหานี้ต่อไป

ที่มา - Chris Blizzard, CNET

หมายเหตุ: บล็อกต้นฉบับลงรายละเอียดเรื่องการทำงานของโพรเซสค่อนข้างดี ใครสนใจวิชาระบบปฏิบัติการ ควรตามไปอ่านกัน

Blognone Jobs Premium