مشکلات استفاده از حافظه Google Chrome/نشت حافظه؟

من عاشق استفاده از Google Chrome برای مرور اینترنت(Internet) هستم و یکی از دلایل اصلی همیشه سرعت فوق العاده آن بوده است! من هرگز از نفخ فایرفاکس(Firefox) با همه افزونه ها خوشم نمی آمد و اینترنت اکسپلورر(Internet Explorer) فقط کند است.

مایکروسافت اج(Microsoft Edge) کمی سریعتر از اینترنت اکسپلورر است، اما من به قدری از سرویس های دیگر گوگل(Google) استفاده می کنم که کروم(Chrome) مدام مرا به عقب می کشاند. مرورگر جدید کوانتوم فایرفاکس(Quantum browser) حتی سریعتر از کروم(Chrome) است و من واقعاً به تغییر فکر می کردم.

وقتی برای اولین بار استفاده از کروم را شروع کردم، از رابط کاربری ساده و تمیز و (Chrome)سرعت مرور(browsing speed) باورنکردنی آن خوشحال شدم . با این حال، پس از چند ماه استفاده زیاد از Chrome در رایانه‌های شخصی بسیار سریع، متوجه شدم برگه‌ها برای چند ثانیه قبل از بارگیری صفحه وب خالی می‌شوند و کندی عمومی دیگر.

Chrome Task Manager

پس از کمی گشت و گذار، تصمیم گرفتم نگاهی به مدیر وظیفه بیندازم(task manager) و ببینم چه فرآیندهایی برای Chrome در حال اجرا هستند. این چیزی است که من پیدا کردم:

گاو مقدس(Holy cow) ! این 35 پردازش عظیم گوگل کروم(Google Chrome) است! این تعداد زیادی از فرآیندها به علاوه بیش از 5 گیگابایت در استفاده از حافظه است(memory usage) . همه آن فرآیندهای کروم چیست؟ (Chrome)مسلماً، زمانی که اسکرین شات بالا را گرفتم، 16 برگه باز داشتم، اما همه صفحات وب بدون پخش ویدیو یا انیمیشن(playing or animations) ثابت بودند . پس چرا 35 پردازش و گیگابایت(GBs) حافظه؟

می‌توانید با کلیک راست بر روی نوار عنوان(title bar) (نه روی یک برگه) و انتخاب Task manager ، متوجه شوید که پشت هر یک از این فرآیندها در (Task manager)Chrome چیست .

تصویر

در اینجا هر فرآیند (به نام Task) در حال اجرا در Google Chrome را مشاهده خواهید کرد. من به سرعت از چیزی که دیدم شگفت زده شدم.

مرورگر یک فرآیند است، هر تب فرآیند خودش است و سپس برنامه های وب، GPU و برای هر افزونه و افزونه ای(extension and plug-in) که من فعال کرده بودم، پردازش هایی وجود دارد! ایکس! از آنچه که من به صورت آنلاین از Google خواندم ، آنها همه چیز را به فرآیندهای مختلف تقسیم می کنند زیرا باعث پایداری بیشتر مرورگر می شود. به عنوان مثال، اگر پلاگین فلش(Flash plugin) خراب شود، تمام برگه های شما یا کل مرورگر را حذف نمی کند.

با استفاده از Google Chrome برای مدت طولانی، متوجه شدم که این بسیار درست است. خیلی وقت‌ها پیش آمد که یک برگه می‌میرد و من می‌توانم زبانه را ببندم و به استفاده عادی از برگه‌های دیگرم ادامه دهم یا Shockwave هنگ می‌کرد و من آن یک برگه را می‌کشیدم و همه(tab and everything) چیز به خوبی کار می‌کرد.

بنابراین فکر بعدی من این بود که آیا داشتن تمام فرآیندهای جداگانه از حافظه اضافی بر خلاف آنچه قبلا بود استفاده می کرد. از آنچه من به صورت آنلاین جمع آوری کرده ام، به نظر می رسد که حتی اگر فرآیندهای کمتری وجود داشته باشد، افزونه ها و برنامه های افزودنی همچنان از حافظه استفاده می کنند، شاید فقط کمی کمتر. ایجاد یک فرآیند جدید هزینه کمی دارد، اما جزئی است.

ممکن است چندین مورد را نیز مشاهده کرده باشید که به عنوان زیرفریم فهرست شده اند: (subframe:) https://accounts.google.com . در ابتدا، من فکر کردم که این موضوع مربوط به باز بودن یک برگه برای Gmail است، اما فهمیدم که کاملاً چیز دیگری است. در اصل(Basically) ، گوگل(Google) برخی از فرآیندها را در فرآیند خود قرار می دهد تا به درستی آنها را جدا کند. بنابراین وب‌سایت‌های متعددی وجود داشتند که به‌جای فهرست کردن فرآیند برگه‌های جداگانه خود، در داخل این زیرفریم‌ها قرار داشتند(tab process) .

بنابراین آیا کاری وجود دارد که می توانید برای کاهش میزان استفاده از حافظه کروم(Chrome) انجام دهید ؟ برای من، زمانی که فلش را برای همه سایت‌ها غیرفعال کردم، به جای گذاشتن آن در تنظیمات Ask me first ، متوجه تفاوت بزرگی شدم . برای غیرفعال کردن کامل فلش، به تنظیمات بروید(Settings) ، سپس روی Advanced در پایین کلیک کنید و سپس روی Content Settings در بخش Privacy and Security کلیک کنید . روی Flash کلیک کنید و سپس مطمئن شوید که می گوید Block sites from running Flash .

این باعث شد که من بیش از 1 گیگابایت در مصرف حافظه(memory usage) صرفه جویی کنم . من نمی دانستم، اما چندین وب سایت از Flash استفاده می کردند . حتی با غیرفعال بودن فلش(Flash) ، وب سایت ها به خوبی کار می کردند، بنابراین من فلش(Flash) را غیرفعال نگه داشتم. راه دیگر برای کاهش حافظه حذف برخی از افزونه ها است، به خصوص اگر از آنها استفاده نمی کنید. همچنین، اگر گهگاه به یک افزونه نیاز دارید و نمی‌خواهید آن را به طور کامل حذف کنید، می‌توانید به سادگی آن را غیرفعال کنید.

غیرفعال کردن برنامه افزودنی از مصرف حافظه آن جلوگیری می کند. در نهایت، ممکن است متوجه یک فرآیند GPU(GPU process) در کروم(Chrome) شده باشید که باید به طور پیش فرض فعال باشد. اگر سخت‌افزار شما از آن پشتیبانی می‌کند، Chrome برخی از کارها را در GPU شما بارگذاری می‌کند ، که سریع‌تر و کارآمدتر از CPU شما است. این شتاب سخت افزاری(Hardware Acceleration) نامیده می شود . اگر می‌خواهید، می‌توانید با رفتن به تنظیمات(Settings) و سپس پیمایش تا پایین به سیستم(System) ، آن را غیرفعال کنید .

اگر شتاب سخت‌افزاری(hardware acceleration) را غیرفعال کنید ، تجربه شما در Chrome کمی کندتر خواهد بود، بنابراین این را در نظر داشته باشید.

بنابراین، اگر احساس می‌کنید Chrome(Chrome) بیش از حد رم(RAM) مصرف می‌کند ، Task Manager را بررسی کنید و سعی کنید افزونه‌ای را که از مقدار زیادی حافظه استفاده می‌کند غیرفعال کنید. برای من، یک افزونه داشتم که دوست داشتم، اما از سال 2013 به روز نشده بود، به همین دلیل است که می توانست از حافظه زیادی استفاده کند. اگر نیازی به برنامه افزودنی ذخیره‌سازی منابع ندارید، آن را غیرفعال کنید و تجربه مرور(browsing experience) بهتری خواهید داشت . همچنین فلش(Flash) را غیرفعال کنید مگر اینکه واقعاً به آن نیاز داشته باشید. لذت بردن!



About the author

من یک مهندس نرم افزار با بیش از 10 سال تجربه در ساخت و نگهداری از Apple Mac، دستگاه های iOS و مرورگرهای Google Chrome هستم. تجربه من شامل توسعه، نگهداری و بهره برداری از محصولات نرم افزاری از ابتدا یا مشارکت در پروژه های منبع باز است. من همچنین این فرصت را داشته ام که روی پروژه های سخت افزاری متنوعی کار کنم - از تعمیر صفحه نمایش شکسته در بیمارستان ها تا طراحی و اجرای ویژگی های جدید برای آیفون. در اوقات فراغت از انجام بازی های ویدیویی مورد علاقه، خواندن کتاب، پختن شام با خانواده یا گذراندن وقت با دوستان لذت می برم.



Related posts