Google SegmentHeap را در کروم به دلیل رگرسیون عملکرد غیرفعال می کند
3 دقیقه خواندن
منتشر شده در
صفحه افشای ما را بخوانید تا بدانید چگونه می توانید به MSPoweruser کمک کنید تا تیم تحریریه را حفظ کند ادامه مطلب
در ماه می، مایکروسافت به روز رسانی می 10 ویندوز 2020 را برای کاربران ویندوز 10 منتشر کرد. بهروزرسانی جدید با SegmentHeap ارائه شد که به برنامههای Win32 اجازه میداد تا استفاده از RAM را بهبود بخشند. بلافاصله پس از انتشار، مایکروسافت اعلام کرد که با استفاده از ویژگی جدید توانسته است استفاده از رم در Edge را کاهش دهد.
در ماه ژوئن، گوگل نیز به راه افتاد و اعلام کرد از SegmentHeap در مانیفست کروم استفاده میکند که رفتار هنگ کردن حافظه کروم را اصلاح میکند. ویژگی بعد بود فعال در کروم نسخه 85، اما پس از آزمایش بیشتر، گوگل این ویژگی را در کروم غیرفعال کرده است. گوگل اشاره کرد که این ویژگی باعث مشکلات عملکردی شده و از این رو غیرفعال شده است.
با ورود commit https://chromium-review.googlesource.com/c/chromium/src/+/2163163، Windows >= 10.0.19041.0 (ویندوز 10 نسخه 2004 و جدیدتر) chrome.exe را برای استفاده از قسمت پشته انتخاب می کند. از پشته میراث. اما که منجر به رگرسیون عملکرد برای WebXPRT3، Speedometer2 و JetStream2 شد.
مایکروسافت، از سوی دیگر، اشاره کرد اینکه یک برنامه معمولی است که یک منبع را با منبع دیگری مبادله می کند، بنابراین کاهش مصرف حافظه به معنای افزایش استفاده از CPU است. مایکروسافت همچنین گفت که میتوان برخی بهبودها را برای کاهش تأثیر انجام داد.
معامله یک منبع با منبع دیگر معمول است. بیشتر اوقات برای کاهش استفاده از CPU، استفاده از حافظه افزایش می یابد. در این مورد، استفاده از CPU برای کاهش چشمگیر استفاده از حافظه، یا به طور دقیق تر، افزایش می یابد. اگر به تعهدی که بروس ساخته است نگاه میکردید، اشکالی را پیدا میکردید که او را به استفاده از پشته سگمنت سوق میداد، و این 100% هزینه اضافی ناشی از استفاده از پشته تکه تکه شدن کم در فرآیندهای مرورگر بود.
https://bugs.chromium.org/p/chromium/issues/detail?id=1014701#c9
گفته می شود، بهبودهایی وجود دارد که می توان برای کاهش تأثیر انجام داد. آنها به دو بخش تقسیم می شوند، اما هیچ کدام آسان نیست.
1) میزان تخصیص پشته های گذرا را که مرورگر انجام می دهد کاهش دهید. این به تغییرات قابل توجهی در کل پایگاه کد مرورگر نیاز دارد.
2) عملکرد خود Segment heap را بهبود بخشید. این فقط توسط تیم ویندوز قابل حل است و ما در حال بررسی گزینه های خود هستیم.در کوتاه مدت، این یک مبادله خوب از یک منبع با منبع دیگر است زیرا استفاده از حافظه/تعهد برای کاربران مرورگر یک نقطه دردسر قابل توجه است.
متاسفانه دیشب گوگل مصمم برای ادامه و غیرفعال کردن SegmentHeap. پشت پرچم GN منتقل شده است تا تیم بتواند به آزمایش این ویژگی ادامه دهد تا پایان راه نباشد.
پشته سگمنت را به طور پیشفرض غیرفعال کنید و یک پرچم GN برای کنترل آن اضافه کنید.
نگرانی هایی وجود دارد که هزینه Segment Heap هزینه آن را توجیه نمی کند (به crbug.com/1102281 مراجعه کنید). این CL آن را به طور پیش فرض غیرفعال می کند و این ویژگی را پشت پرچم GN قرار می دهد تا به ما اجازه دهد تا با آن آزمایش کنیم.
از طریق: Techdows