คุณอาจอ่านบทความมากมายเกี่ยวกับการนำ multi-threaded sandboxed stack ที่แท้จริงเข้ามาใน Firefox เริ่มจากเวอร์ชัน 4X ล่าสุด ออกแบบมาเพื่อปรับปรุงความปลอดภัยและประสิทธิภาพของเบราว์เซอร์ที่ถูกมองว่าป่วย โครงการนี้รู้จักในชื่อ Electrolysis, e10s และอื่นๆ มุ่งหวังจะเป่าชีวิตใหม่ให้ Firefox แล้วก็ถูกต้อง
ตอนนี้ การรองรับเต็มรูปแบบจะไม่เปิดใช้งานทั่วแพลตฟอร์มในเมื่อไรเร็ว และยังขึ้นอยู่กับการรองรับส่วนขยาย ซึ่งเป็นหัวใจสำคัญของระบบนิเวศ Firefox เสมอมา ก่อนที่แนวคิดใหม่จะไปถึงเครื่องของคุณ ผมตัดสินใจลอง preview ก่อน และดูว่ามีอะไรบ้าง ตัวอย่างของสิ่งที่ Firefox จะเป็นในวันหนึ่ง
หมายเหตุ: รูปภาพมาจาก Wikimedia ภายใต้สัญญา CC BY-SA 3.0
คำเตือน: อย่าลองทำที่บ้าน
มีการปรับแต่งหลายอย่างที่คุณต้องทำก่อน Firefox จะทำงานแบบ multi-threaded ในบางกรณี เบราว์เซอร์ของคุณอาจเป็น "The Chosen One" แล้ว ตามนโยบายของ Mozilla ที่เปลี่ยนแปลงอย่างค่อยเป็นค่อยไป แต่ก็ค่อนข้างน่าจะเป็นไปไม่ได้ เพราะส่วนขยายของคุณยังไม่พร้อม
ดังนั้นก่อนที่คุณจะดำเนินการต่อ คำแนะนำของผมคือ - หากคุณต้องการทดสอบ โปรดใช้กล่องทดสอบและ/หรือโปรไฟล์ทดสอบ โดยเฉพาะทั้งคู่ ตรวจสอบให้แน่ใจว่าคุณมีสำรองโปรไฟล์ และคุณสบายใจที่จะพยายามแก้ไข Firefox หากมันพัง ตอนนี้ หากคุณมี Firefox เวอร์ชันที่ถูกต้อง ให้เปิดแท็บใหม่และพิมพ์ about:support จะเปิดหน้าที่แสดงว่เบราว์เซอร์ของคุณสามารถทำอะไรได้บ้างและกำลังทำอะไรอยู่ เรื่องนักเทคนิค หากคุณไม่สบายใจ เดินไปได้เลย ตอนนี้ เบราว์เซอร์ของคุณน่าจะยังไม่มีฟีเจอร์ Multiprocess Windows เปิดใช้งาน รายการนี้อาจอ่านว่าบางอย่างเช่น 0/1 (Disabled by add-ons)
กระบวนการบังคับให้ Electrolysis ทำงานด้วยตนเองต้องการการเปลี่ยนแปลงอย่างน้อยหนึ่งอย่าง และอาจจะสองอย่าง คุณต้องเปิดหน้า about:config ลับ และเพิ่ม boolean preference ใหม่ชื่อ browser.tabs.remote.force-enable แล้วตั้งค่าเป็น true รีสตาร์ทเบราว์เซอร์
มันทำงานอยู่ไหม?
เบราว์เซอร์อาจบอกว่าทำงาน แต่คุณจะแน่ใจได้อย่างไร? ตัวอย่างเช่น เมื่อผมตรวจสอบสถานะ Firefox หลังรีสตาร์ท ยังแสดงกระบวนการเดียวกับ plugin-container ลูกเพียงตัวเดียว มีเธรดมากสำหรับแต่ละตัว แต่สิ่งนี้ไม่ใช่เรื่องใหม่ หากคุณเคยสำรวจพื้นหลังว่า Firefox ทำงานอย่างไร
จำได้ไหมผมกล่าวถึงการเปลี่ยนแปลงครั้งที่สอง? นี่คือสิ่งที่เราต้องการตอนนี้ อีกครั้ง การเปลี่ยนแปลงนี้ไม่แนะนำ เพราะจะพาคุณห่างจาก baseline ที่รองรับมากขึ้น และคุณจะทดสอบฟีเจอร์ที่ยังไม่ได้ implement เต็มที่ แต่มันให้คุณเพิ่มจำนวนกระบวนการลูกที่ Firefox สร้างได้ โดยแต่ละตัวเพิ่มความซับซ้อนและการใช้หน่วยความจำสูงขึ้น ทางปกติ
การเปลี่ยนแปลงครั้งที่สองควบคุมโดย dom.ipc.processCount preference คุณสามารถเปลี่ยนหมายเลขเป็นอะไรก็ได้จากค่าเริ่มต้น 1 คำแนะนำของผมคือทำงานในกำลังสอง ไม่เกินจำนวน CPU cores จริง หรือสองเท่าถ้าคุณเปิด hyperthreading ในขณะนี้
เมื่อทำการเปลี่ยนแปลงนี้ - และรีสตาร์ทเบราว์เซอร์ คุณจะเห็นกระบวนการเพิ่มเติมมาก โปรดทราบว่าผมทดสอบบน Windows 10 ในอนาคต ผมจะขยายการทดสอบไปยัง Windows อื่นๆ รวมถึง Linux distros ต่างๆ และรวม Firefox 64-bit ด้วย หากคุณมีข้อกล่าวอ้าง ขอแนะนำ Yes, Prime Minister และคำพูดดังของ Sir Humphrey: โรมไม่ได้สร้างขึ้นในหนึ่งวัน
มีการปรับปรุงไหม?
ทำงานได้ทางเทคนิค ใช่ การใช้หน่วยความจำคล่องแคล่วเท่าเดิม แต่ก็ขึ้นอยู่กับ workload ของคุณมาก ส่วนใหญ่จะไม่เห็นความแตกต่างใหญ่ และการเพิ่มหน่วยความจำ 10-20% อยู่ในขอบเขตข้อผิดพลาดของหน้าเพจที่มี Javascript หนัก CPU-wise เบราว์เซอร์ไม่ได้ทำอะไรมากกว่าหรือน้อยกว่าเดิม มันเสถียร แต่เป็นโปรไฟล์ทดสอบที่มีส่วนขยายแค่สองตัว - Adblock และ CTR จึงต้องใช้เวลามากขึ้นในการเล่น ประสิทธิภาพคล่องแคล่วเท่าเดิม ทั้งหมด ไม่มีอะไรที่ทำให้ผมหैरानी แต่นั่นคือจุดประสงค์ หากเบราว์เซอร์ของคุณช้า แสดงว่าคุณทำผิดอยู่ ความงามของโซลูชันหรือเทคโนโลยีที่ดีคือมันโปร่งใส สำหรับคนส่วนใหญ่ Firefox อาจจะเร็วขึ้นเล็กน้อยในวันหนึ่ง เฉพาะนักเทคนิคเท่านั้นที่สนใจ ไม่ใช่ความเร็วที่ทำให้คนออกจาก Firefox ไป Chrome แต่เป็นหัวข้ออื่น
สรุป
ในวันแรกๆ ของการทดสอบ การปรับแต่ง และการปรับใช้ที่ค่อยเป็นค่อยไปและยังไม่สมบูรณ์ Firefox กับ Electrolysis พฤติกรรมค่อนข้างดี บนกล่องทดสอบ ซึ่งไม่ใช่สิ่งที่คุณควรพิจารณาสำหรับ production แต่วงรวม นอกจากการตั้งค่าที่ซับซ้อนเล็กน้อย มันส่งผลลัพธ์ที่พึงประสงค์และคาดเดาได้
อย่างไรก็ตาม ไม่มีการปฏิวัติ การใช้หน่วยความจำและโปรเซสเซอร์ค่อนข้างเท่าเดิม และประสิทธิภาพก็เช่นกัน พร้อมกับประสบการณ์ที่เสถียรและไม่ crash ระหว่างการทดสอบของผม ประโยชน์ของการแยกความปลอดภัยและการทำงานแบบ multi จะชัดเจนในอนาคต เมื่อมีการปรับปรุงและการเพิ่มประสิทธิภาพเพิ่มเติม และเมื่อผู้คนเริ่มใช้ฟีเจอร์นี้จริงจัง แต่นี่แน่นอนเป็นขั้นตอนที่ถูกต้องในทิศทางที่ถูกต้อง Firefox ต้องการวิตามินสดใหม่เล็กน้อย และนี่อาจเป็นสิ่งที่ผู้ใช้ต้องการ อย่างไรก็ตาม นี่เป็นการทดสอบครั้งแรก แต่แน่นอนว่าไม่ใช่ครั้งสุดท้าย พบกันใหม่ และโปรดพิจารณาผลการค้นพบของผมพร้อมเกลือมากมาย
ขอแสดงความนับถือ