Gabriele Svelto วิศกรของ Mozilla เขียนบล็อกเล่าถึงทริกการลดอัตราการแครชของไฟร์ฟอกซ์บนวินโดวส์ที่ใช้ตั้งแต่เวอร์ชั่น 105 ว่าสาเหตุสำคัญของการแครชอย่างหนึ่งคือแรมหมดทั้งแรมจริงๆ และไฟล์ swap ของระบบปฎิบัติการ
ปกติแล้วหากหน่วยความจำหมดทั้งหน่วยความจำจริงๆ และ swap นั้นระบบปฎิบัติการจะคืนค่า error เมื่อซอฟต์แวร์ร้องขอหน่วยความจำเพิ่มเติม จากนั้นตัวโปรแกรมก็จะปิดตัวเองไป
แต่ในไฟร์ฟอกซ์ 105 ทีมพัฒนาเปลี่ยนกลไกส่วนนี้ในวินโดวส์ เนื่องจากวินโดวส์มีความสามารถเพิ่มขนาดไฟล์ swap ได้เองเมื่อพื้นที่ใกล้เต็ม ดังนั้นหากตัวเบราว์เซอร์รออีกสักหน่อยแล้วขอหน่วยความจำอีกครั้งก็มักจะขอได้
การรอหน่วยความจำเพิ่มถูกนำมาใช้งานกับตัวโปรเซสหลักของเบราว์เซอร์เท่านั้น โปรเซสของตัวเรนเดอร์สามารถปิดการทำงานไปเลยได้ เพราะมีผลกับผู้ใช้เพียงแค่เห็นแท็บหนึ่งรีโหลดหน้าเว็บเท่านั้น นอกจากนี้โปรเซสของตัวแท็บที่ปิดไปก็ยังช่วยคืนหน่วยความจำให้ระบบรวมอีกด้วย หรือหากเป็นโปรเซสกราฟิกก็ยังเห็นแค่หน้าจอกระพริบเท่านั้น ทริกเล็กๆ นี้ทำให้อัตราการแครชของไฟร์ฟอกซ์ลดลงถึง 70%
ตอนนี้ไฟร์ฟอกซ์กำลังพยายามปรับปรุงการใช้งานหน่วยความจำมากขึ้น โดยอาศัยการตรวจสอบระดับหน่วยความจำหากเหลือน้อยก็อาจจะเริ่มปิดบางแท็บที่ทำงานเบื้องหลังทิ้งไป
ที่มา - Mozilla Hacks
อัตราการแครชหลัง Firefox 105
Comments
ยังใช้ firefox อยู่หรอ
Always
mosila กิน ram เยอะมาก เปิดหน้าเดียว กินไป 10% (ใช้ ram 8gb)
fire กินแรมเยอะมาก คนไทยบ่น
gle กินแรมเยอะมาก ยังไงผมก็ยังใช้ คนไทยอวด
แรมหมดนี่เพราะ facebook แหละครับ (ฮา)
แต่เอาจริง ๆ เคยเจอแบบ พอเพิ่มดาวน์โหลดไปสัก 40-50 ไฟล์รวดเดียว เครื่องจะชะงัก ๆ ไปเหมือนมันทำงานไม่ทัน เดาว่าแม้กระทั่ง downloader ก็ยังเป็น html/js หรือเปล่านะ (เพราะเครื่องนี้มัน 8/16 core/thread)
ทำไมมีแต่คนยี้ Firefox อ่ะ ผมล่ะชอบมาก โดยเฉพาะใน Android นี่ลง uBlock Origin ได้ เป็นเบราเซอร์ตัวเดียวที่ป้องกันโฆษณาได้ผลจริงจัง รวมถึงบน macOS ด้วย
ผมนี่ยี้ Safari ที่สุด ไม่มีอุปกรณ์ของ Apple นี้ test ลำบากเหลือเกิน
จะให้ไปซื้อ service พวก browser tester เพื่อ Safari อย่างเดียวก็กระไรอยู่
Safari นี่ นอกคอกสุดล่ะ
ใช้ webkit engine เพื่อ test ได้ไหมนะครับ เห็น Playwright มันใช้ browser ที่ใช้ engine นั้นมารันดื้อๆ เลย
คงต่างอยู่บ้างแหละแต่ไม่รู้ว่าพอไหม orz
น่าจะได้นะครับอันนี้ แต่มันต้องมี browser จริง install อยู่ด้วย
แต่แค่พอรู้ได้ว่ามัน install webkit บน Linux ได้ ก็น่าจะทำอะไรได้บ้างแล้วล่ะครับ ขอบคุณครับ
พวกนี้มันใช้หลักการ Webdriver ครับ https://www.w3.org/TR/webdriver (คล้าย Selenium เพราะ w3 ก็ไปเอามาจาก Selenium อีกที) มีประโยชน์ไม่น้อย
มันสามารถสั่งงาน browser ผ่าน REST API ให้ทำทุกอย่างที่ browser engine ทำได้ (screenshot, save PDF, run javascript, เอาไปสร้างบอท แย่งซื้อ PS5 ก็ได้ด้วยครับ)
อ่าน standard อาจจะงง ก็พอมีตัวอย่างง่ายๆ อยู่ครับ
https://github.com/jlipps/simple-wd-spec#location-strategies
ล่าสุดทำ Godot Engine พังพินาศ ทีมต้องรีบแก้ไขแบบฉุกเฉิน แถมอีกปัญหาคือ ใน mobile OS แอปเปิลบังคับใช้ WebKit ของตัวเองในทุกเบราว์เซอร์ด้วย
Safari บน macOS นี่ผมมีไว้ดาวน์โหลด Chrome กับ Firefox ส่วนบน iPhone ใช้นะเพราะต่อให้ดาวน์โหลดเบราเซอร์อื่นมีความรู้สึกว่ามันคือ Safari แต่งหน้าทาปากใหม่อ่ะ อย่างบั๊กบางอันเจอทุกเบราเซอร์ ตอนนี้มือถือเลยใช้แอนดรอยด์ซะส่วนใหญ่ ส่วน iPhone เอาไว้เป็นรีโมท Apple TV เวลาพิมพ์สะดวกดี
ผมลงผ่าน brew ครับ
ผมใช้ Brave ทั้งบนมือถือ และ macOS ความรู้สึกว่าครบเครื่องดี เอนจิ้นยอดนิยม+บล็อกโฆษณาในตัว และรู้สึกถึงจิตวิญญาณของ firefox หน่อยๆ
WE ARE THE 99%
ตอนนี้ผมเจอบางเว็บเริ่มมีโฆษณาบ้างแล้วครับ
ตั้งแต่เพิ่ม VPN เข้ามา
เรื่องแบบนี้เจอ ตอนใช้ Jquery datatable export excel ระบบหมื่นแถวเปิดในโครมนี้พังเลย แต่ไฟร์ฟ็อกยัง export ได้ปกติ
ดูในtaskmgrแรมไม่เต็ม แต่พอเปิดเยอะๆก็ชอบแคลชอยู่ดี
พออัพแรมเป็น32Gbก็ช่วยให้มันหายแคลชได้ดีขึ้น แสดงว่าน่าจะเกี่ยวกับแรมไม่พอแหละ
แต่คืองงว่าใช้งานramไปได้แค่ครึ่งเดียวก็นับว่าเต็มแล้วเหรอไง
ใช้ปลั๊กอิน Tab Groups ช่วยครับ แบ่งกรุ๊ปแท็บทำงาน-ส่วนตัวได้ดีมาก ทำงานกับ Firefox Containers ดีมากด้วย แต่แต่ละกรุ๊ปก็ 40-50 แท็บอยู่ดี ถถถ
ตั้งแต่อัพสเปค PC ใส่แรม 64GB.
ผมก็ไม่สนแล้วว่าบราวเซอร์ตัวไหนจะใช้แรมเยอะ 555