Google ปิดการใช้งาน SegmentHeap บน Chrome เนื่องจากการถดถอยของประสิทธิภาพ

ไอคอนเวลาอ่านหนังสือ 3 นาที. อ่าน


ผู้อ่านช่วยสนับสนุน MSpoweruser เราอาจได้รับค่าคอมมิชชันหากคุณซื้อผ่านลิงก์ของเรา ไอคอนคำแนะนำเครื่องมือ

อ่านหน้าการเปิดเผยข้อมูลของเราเพื่อดูว่าคุณจะช่วย MSPoweruser รักษาทีมบรรณาธิการได้อย่างไร อ่านเพิ่มเติม

Google Chrome

ในเดือนพฤษภาคม Microsoft ได้เปิดตัวการอัปเดต Windows 10 พฤษภาคม 2020 สำหรับผู้ใช้ Windows 10 การอัปเดตใหม่มาพร้อมกับ SegmentHeap ที่อนุญาตให้แอป Win32 ปรับปรุงการใช้ RAM ไม่นานหลังจากการเปิดตัว Microsoft ประกาศว่าสามารถลดการใช้ RAM บน Edge โดยใช้คุณสมบัติใหม่ได้

ในเดือนมิถุนายน Google ก็กระโดดขึ้นไปบน bandwagon และ ประกาศ จะใช้ SegmentHeap ในรายการของ Chrome ซึ่งจะแก้ไขพฤติกรรมการใช้หน่วยความจำของ Chrome คุณลักษณะนี้ในภายหลัง เปิดการใช้งาน ใน Chrome v85 แต่หลังจากการทดสอบเพิ่มเติม Google ได้ดำเนินการและปิดใช้งานคุณลักษณะนี้ใน Chrome Google เด่น ว่าคุณลักษณะนี้ทำให้เกิดปัญหาด้านประสิทธิภาพและด้วยเหตุนี้จึงถูกปิดใช้งาน

ด้วยการคอมมิต https://chromium-review.googlesource.com/c/chromium/src/+/2163163 ลงจอด Windows >= 10.0.19041.0 (Windows 10 เวอร์ชัน 2004 และใหม่กว่า) จะเลือก chrome.exe ให้ใช้เซกเมนต์ heap แทน ของกองมรดก ซึ่งนำไปสู่การถดถอยประสิทธิภาพสำหรับ WebXPRT3, Speedometer2 และ JetStream2

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

เป็นเรื่องปกติที่จะแลกเปลี่ยนทรัพยากรหนึ่งกับอีกแหล่งหนึ่ง บ่อยครั้งมีการใช้งานหน่วยความจำเพิ่มขึ้นเพื่อลดการใช้ CPU ในกรณีนี้ การใช้งาน CPU จะเพิ่มขึ้นเพื่อลดการใช้หน่วยความจำลงอย่างมาก หรือกระทำได้อย่างแม่นยำมากขึ้น หากคุณดูที่การกระทำที่บรูซทำ คุณจะพบจุดบกพร่องที่ทำให้เขาใช้เซกเมนต์ฮีป และนั่นเป็นค่าใช้จ่าย 100% จากการใช้ฮีปการแตกแฟรกเมนต์ต่ำในกระบวนการของเบราว์เซอร์

https://bugs.chromium.org/p/chromium/issues/detail?id=1014701#c9

ที่กล่าวว่ามีการปรับปรุงบางอย่างที่สามารถทำได้เพื่อลดผลกระทบ พวกเขาแบ่งออกเป็นสองส่วน แต่ก็ไม่ง่าย

1) ลดจำนวนการจัดสรรฮีปชั่วคราวที่เบราว์เซอร์สร้าง สิ่งนี้จะต้องมีการเปลี่ยนแปลงที่สำคัญในฐานรหัสของเบราว์เซอร์ทั้งหมด
2) ปรับปรุงประสิทธิภาพของฮีปเซ็กเมนต์เอง ปัญหานี้สามารถแก้ไขได้โดยทีม Windows และเรากำลังตรวจสอบตัวเลือกของเรา

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

ขออภัยเมื่อคืนนี้ Google ตัดสินใจ เพื่อดำเนินการต่อและปิดใช้งาน SegmentHeap มันถูกย้ายไปด้านหลังแฟล็ก GN เพื่อให้ทีมสามารถทดลองคุณลักษณะนี้ต่อไปได้ ดังนั้นจึงไม่ใช่จุดสิ้นสุดของถนน

ปิดใช้งานฮีปเซ็กเมนต์ตามค่าเริ่มต้น และเพิ่มแฟล็ก GN เพื่อควบคุม

มีความกังวลว่าต้นทุนของฮีปเซ็กเมนต์ไม่สมเหตุสมผลกับต้นทุน (ดู crbug.com/1102281) CL นี้ปิดใช้งานโดยค่าเริ่มต้นและใส่คุณลักษณะนี้ไว้ด้านหลังแฟล็ก GN เพื่อให้เราทำการทดลองกับมันต่อไป

ถนน: Techdows

ข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อต่างๆ: Google, Google Chrome, Google Chrome Canary, กองส่วน

เขียนความเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมาย *