Chrome มีระบบจำกัดทรัพยากรของแท็บที่ทำงานเบื้องหลังมานานพอสมควร (นับตั้งแต่ Chrome 57 ในปี 2017) ช่วยลดทั้งซีพียู จีพียู แรม ปัญหาคือระบบจำกัดทรัพยากรนี้ทำงานเฉพาะแท็บที่อยู่เบื้องหลังเท่านั้น ไม่ครอบคลุมถึงหน้าต่างที่ไม่ถูกโฟกัส ถูกย่อลง หรือถูกหน้าต่างอื่นบังอยู่
ทีมงาน Chrome พบว่ามีหน้าต่างประมาณ 20% เป็นหน้าต่างที่ถูกบัง การอนุญาตให้แท็บในหน้าต่างเหล่านี้ทำงานจึงเสียทรัพยากรเปล่า ทีมงานจึงพยายามแก้ปัญหานี้ด้วยเช่นกัน แต่อุปสรรคสำคัญคือตัวระบบปฏิบัติการ (Windows) ไม่มีวิธีการบอกว่าหน้าต่างถูกบังหรือไม่
ทางออกของ Chrome คือการคำนวณหาสถานะของหน้าต่างเอาเอง ซึ่งต้องคำนวณหน้าต่างทุกอันที่เปิดอยู่บนหน้าจอ (ไม่ใช่เฉพาะหน้าต่างของ Chrome) โครงการนี้ชื่อว่า Native Window Occlusion มีความยากเพราะเดสก์ท็อปมีความซับซ้อนสูง มีปัจจัยเรื่องการต่อมอนิเตอร์หลายตัว, เดสก์ท็อปเสมือน, หน้าต่างที่ไม่โปร่งแสง ฯลฯ มาเกี่ยวข้องด้วยมากมาย

แนวทางของ Chrome คือคำนวณหาหน้าต่างทั้งหมดในตอนแรก เพื่อดูว่ามีหน้าต่าง Chrome เปิดและถูกบังหรือไม่ แต่หลังจากนั้นจะไม่คำนวณหน้าต่างทั้งหมดอีกเพราะมีผลต่อประสิทธิภาพ จึงใช้วิธีดู system event แทนว่ามีหน้าต่างใดถูกย้าย-ย่อ-เปลี่ยนขนาดบ้าง เพื่อปรับสถานะของหน้าต่างที่ถูกบังให้เป็นปัจจุบัน
ฟีเจอร์นี้ถูกเริ่มใช้งานแบบทดลองตั้งแต่ Chrome 86 ซึ่งให้ผลออกมาดี สามารถลดการใช้แรมจีพียูลงได้ 3.1%, ลดการวาดเฟรมลงได้ 20.4%, การวาดหน้าจอคอนเทนต์ทำได้เร็วขึ้น และส่งผลให้ Chrome ทำงานเร็วขึ้น 8.5-25.8%
ที่มา - Chromium Blog
on
น่าสนใจ
tom789 Mon, 20/12/2021 - 15:55
น่าสนใจ
สรุปคือคนที่เปิด Chrome 1 Tab
wichate Mon, 20/12/2021 - 17:01
สรุปคือคนที่เปิด Chrome 1 Tab (งานประเภท Dashboard) กิน CPU และ Ram มากกว่าเดิม (เพราะต้องเอาไปประมวลผลอะไรพวกนี้ทั้งที่ไม่จำเป็น)
อย่าลืมว่าประประมวลผลเพื่อลดการใช้ CPU จำเป็นต้องใช้ CPU เพิ่มเช่นกัน
ไม่นับจำนวนหน้าต่างก่อนเหรอ
big50000 Mon, 20/12/2021 - 18:47
In reply to สรุปคือคนที่เปิด Chrome 1 Tab by wichate
ไม่นับจำนวนหน้าต่างก่อนเหรอ
จริงๆควรจะทำที่ระดับ OS
arth Mon, 20/12/2021 - 18:50
จริงๆควรจะทำที่ระดับ OS เลยนะเนี่ย
มีค่าสถานะให้แต่ละโปรแกรมมาดูว่าโดนบังหรือไม่ ส่วนที่เหลือแต่ละโปรแกรมก็ไปจัดการเองว่าจะทำอะไรถ้าโดนบัง ถ้าไม่ทำก็เขียนเหมือนเดิม
พวก API อำนวยความสะดวกแนว ๆ
big50000 Mon, 20/12/2021 - 20:56
In reply to จริงๆควรจะทำที่ระดับ OS by arth
พวก API อำนวยความสะดวกแนว ๆ นี้มักนำมาซึ่งช่องโหว่ของระบบ
ซึ่งยากมากครับ
lew Tue, 21/12/2021 - 00:02
In reply to จริงๆควรจะทำที่ระดับ OS by arth
ซึ่งยากมากครับ โดยเฉพาะถ้าจะคงความเข้ากันได้กับแอปพลิเคชั่นเก่าๆ ทั้งหมด (ซึ่งเป็นจุดได้เปรียบของ Desktop)
ถ้ากรณีของ mobile OS นี่ทำแบบนี้ได้อยู่แล้ว เกิดใหม่แล้วคิดเรื่องแบบนี้แต่แรกเลย แถมตัด flexibility การแสดงหน้าต่างเหลื่อมกัน ทำให้ง่ายลงมาก
ใช้หนะครับ
arth Tue, 21/12/2021 - 01:29
In reply to ซึ่งยากมากครับ by lew
ใช้หนะครับ ที่ผมหมายถึงคือไปสอบถามสถานะ(คล้าย ๆ function นึง)กับ OS ว่าโดนบังไหม ซึ่งถ้าโปรแกรมเก่าๆ ก็จะไม่มีการเรียกใช้อยู่แล้ว ก็ทำงานเหมือน ๆ เดิม ส่วนโปรแกรมใหม่ ๆ ก็เหมือนเป็น feature ของ OS นั่นแหละครับ จะเรียกใช้หรือไม่เรียกก็ได้ ถ้าเรียกก็จะรู้ว่าโดนบัง หลังจากรู้แล้ว จะไม่ทำอะไร หรือจะลดงานลงเองก็ได้
โปรแกรมจำนวนมากมายมหาศาลไม่ได
big50000 Tue, 21/12/2021 - 09:10
In reply to ใช้หนะครับ by arth
โปรแกรมจำนวนมากมายมหาศาลไม่ได้จัดการหน้าต่างตามแนวทางที่ window manager ออกแบบมาด้วยซ้ำ ถ้าจะ implement ส่วนของการตรวจสอบนี้มักลงเอยที่การแก้ไขกระบวนการทำงานของ window manager ด้วย ซึ่งมันกระทบแทบทั้งหมด ถ้าจะทำจริง ๆ ก็อย่างที่คุณ lew ว่า มันต้องคิดมาตั้งแต่เริ่มต้น หรืออย่างเบาคือสร้าง application framework/platform ขึ้นมาใหม่
อ้อ งั้นคงแก้ยางละครับ
arth Tue, 21/12/2021 - 10:43
In reply to โปรแกรมจำนวนมากมายมหาศาลไม่ได by big50000
อ้อ งั้นคงแก้ยากละครับ ถ้าไม่หักดิบแบบ Apple ประกาศไม่ support application เก่าๆถ้าไม่ทำนั่นทำนี่ตามที่กำหนด
อันนี้ปัญหาชีวิตเลย
crucifier Mon, 20/12/2021 - 21:15
อันนี้ปัญหาชีวิตเลย เพราะปกติจำเป็นต้องเปิดโครมค้างไว้เพื่อรัน javascript บางอย่าง ก็เปิดทิ้งไว้งั้นแล้วเปิดแท็บใหม่ทำงานไปด้วย ปรากฏว่าแทนที่งานจะเสรในหนึ่งชั่วโมง ผ่านไปเป็นวันก็ยังไม่เสร็จเพราะโดนลด performance ลง
ทำไมรู้ไม่เห็นมันจะเร็วขึ้นเล
freeriod Tue, 21/12/2021 - 00:01
ทำไมรู้ไม่เห็นมันจะเร็วขึ้นเลย
แล้วผู้ใช้มีวิธีเลือกให้หน้าต
peakna Tue, 21/12/2021 - 09:57
แล้วผู้ใช้มีวิธีเลือกให้หน้าต่างที่ถูกบังอนุญาตให้แท็บในหน้าต่างเหล่านี้ทำงานต่อได้หรือป่าว ทำไมไม่ให้ผู้ใช้งานมีวิธีเลือกเปิดหรือปิดน่าจะดีกว่า
how to disable timer
mk Tue, 21/12/2021 - 11:11
In reply to แล้วผู้ใช้มีวิธีเลือกให้หน้าต by peakna
how to disable timer throttling on Google Chrome
ขอบคุณครับ
peakna Tue, 21/12/2021 - 11:28
In reply to how to disable timer by mk
ขอบคุณครับ
Chrome ทำงานไวขึ้น 2X%
meejaa Fri, 24/12/2021 - 13:04
Chrome ทำงานไวขึ้น 2X% โหหหหหห เร็ว สุดยอด นี่คือระดับโลก ไม่มีที่ไหนที่ดีไปกว่านี้อีกแล้ว เกิดมาไม่เคยพบเคยเจออะไรที่จะดีมากถึงขนาดนี้
Firefox ทำงาน ไวขึ้น 3X% วิศวกร ff มีฝีมิอแค่นี้หรอ