به گزارش جام جم آنلاین؛ البته نمیتوان انکار کرد که کروم برای اجرای فعالیتهای مختلف خود به حافظه رم قابلتوجهی نیاز دارد، اما آیا این موضوع به معنای ضعف این مرورگر است؟ واقعیت این است که مصرف بالای رم همیشه نشانه عملکرد نامناسب یک برنامه نیست و در مورد کروم، بخشی از این مصرف به معماری فنی آن و تلاش برای افزایش امنیت، سرعت و پایداری وبگردی مربوط میشود.
پشت پرده مصرف رم در کروم
وبسایتها و شیوه استفاده کاربران از اینترنت در مقایسه با سالهای ابتدایی ظهور وب تغییرات زیادی کرده است. در گذشته، وبگردی بیشتر به جابهجایی میان صفحات متنی محدود میشد که گاهی چند تصویر یا ویدئو نیز در آنها وجود داشت. اما وبسایتهای امروزی شباهت بیشتری به اپلیکیشنها دارند. آنها اطلاعات گستردهتری ارائه میکنند، قابلیتهای تعاملی بیشتری دارند و برای اجرای امکانات مختلف خود به منابع پردازشی بیشتری نیازمندند.
از سوی دیگر، کاربران انتظار دارند چندین زبانه را بهطور همزمان باز نگه دارند، میان آنها جابهجا شوند و در همان زمان چندین افزونه نیز در پسزمینه مرورگر فعال باشند. طبیعی است که مدیریت همزمان این فعالیتها به حافظه بیشتری نیاز داشته باشد.
در چنین شرایطی، توسعهدهندگان مرورگرها با یک انتخاب فنی روبهرو هستند؛ آنها میتوانند برای کاهش مصرف رم، بخشهای مختلف مرورگر را در فرایندهای مشترک اجرا کنند یا برای بخشهای مختلف وبسایتها فرایندهای جداگانهای در نظر بگیرند. روش دوم به حافظه بیشتری نیاز دارد، اما میتواند پایداری، امنیت و سرعت پاسخگویی مرورگر را بهبود دهد.
گوگل کروم از معماری چندفرایندی استفاده میکند و در صورت امکان، برای وبسایتهای مختلف فرایندهای اجرایی جداگانهای در نظر میگیرد. البته این به معنای اختصاص قطعی یک فرایند مستقل به تکتک زبانهها نیست؛ چراکه کروم بسته به شرایط، منابع موجود و ارتباط میان صفحات، بعضی فرایندها را نیز با یکدیگر به اشتراک میگذارد.
مصرف بیشتر رم؛ بهایی برای امنیت و پایداری
یکی از مهمترین مزایای معماری چندفرایندی این است که اختلال در یک صفحه اینترنتی لزوماً به از کار افتادن کل مرورگر منجر نمیشود. در مرورگرهای قدیمیتر، اگر یکی از صفحات یا اجزای اجرایی دچار مشکل میشد، ممکن بود کل مرورگر از کار بیفتد و کاربر تمام زبانههای باز خود را از دست بدهد.
اما در معماری امروزی مرورگرها، فرایندهای اجرایی تا حد زیادی از یکدیگر جدا هستند. در نتیجه، اگر یک وبسایت دچار اختلال شود، احتمال اینکه سایر صفحات و زبانههای باز نیز از کار بیفتند، کاهش پیدا میکند.
این جداسازی از نظر امنیتی نیز اهمیت زیادی دارد. کروم از سازوکاری به نام سندباکس (Sandbox) استفاده میکند که محیط اجرای صفحات وب را محدود میکند. همچنین قابلیت Site Isolation به جداسازی سایتهای مختلف در فرایندهای مستقل کمک میکند تا دسترسی یک صفحه مخرب به اطلاعات سایر وبسایتها محدود شود.
برای مثال، هنگامی که یک زبانه مربوط به حساب بانکی و زبانه دیگری مربوط به یک وبسایت ناشناس باز است، جداسازی فرایندها میتواند مانع دسترسی آسان محتوای مخرب به اطلاعات زبانه بانکی شود.
بنابراین، بخشی از حافظهای که کروم مصرف میکند، در واقع هزینهای است که برای ایجاد مرزهای امنیتی و افزایش پایداری میان بخشهای مختلف مرورگر پرداخت میشود.
چرا مصرف بالای رم همیشه مشکلساز نیست؟
تصور رایجی وجود دارد که برای عملکرد بهتر رایانه باید میزان استفاده از حافظه رم را تا حد ممکن پایین نگه داشت. اما حافظه رم اساساً برای نگهداری اطلاعات و برنامههایی طراحی شده است که رایانه به آنها نیاز دارد تا بتواند فعالیتهای مختلف را با سرعت بیشتری انجام دهد.
به همین دلیل، استفاده از بخشی از حافظه رم برای نگهداری صفحات وب، محتوای چندرسانهای و زبانههای آماده استفاده، لزوماً اتفاق نامطلوبی نیست. مهمتر از عددی که برای میزان مصرف حافظه نمایش داده میشود، این است که آیا سیستم همچنان منابع کافی برای اجرای روان برنامهها در اختیار دارد یا خیر.
البته باید میان مصرف طبیعی حافظه و مشکلی به نام نشت حافظه (Memory Leak) تفاوت قائل شد. نشت حافظه زمانی اتفاق میافتد که یک برنامه بخشی از حافظه رم را به خود اختصاص میدهد، اما پس از پایان نیاز به آن، حافظه را آزاد نمیکند. در چنین شرایطی، میزان مصرف رم ممکن است بدون دلیل مشخص بهطور مداوم افزایش پیدا کند.
کاربران کروم برای شناسایی چنین مشکلاتی میتوانند از ابزار مدیریت وظایف داخلی مرورگر استفاده کنند. این ابزار با فشردن کلیدهای ترکیبی Shift و Esc در دسترس قرار میگیرد و میزان مصرف منابع توسط زبانهها، افزونهها و فرایندهای مختلف را نمایش میدهد. به این ترتیب، اگر یک زبانه یا افزونه به شکل غیرعادی حافظه مصرف کند، میتوان آن را شناسایی کرد.
ابزارهای کروم برای کاهش مصرف حافظه
گوگل برای مدیریت بهتر منابع سیستم، قابلیتی به نام Memory Saver را در کروم قرار داده است. این ویژگی زبانههایی را که کاربر برای مدتی از آنها استفاده نکرده است، غیرفعال میکند و حافظهای را که در اختیار داشتهاند آزاد میسازد. هنگامی که کاربر دوباره به یکی از این زبانهها بازمیگردد، صفحه مجدداً بارگذاری میشود.
این قابلیت در بخش Performance تنظیمات کروم قرار دارد و کاربران میتوانند سطح عملکرد آن را در سه حالت مختلف تنظیم کنند. همچنین امکان مشخص کردن وبسایتهایی وجود دارد که نباید به حالت غیرفعال درآیند؛ برای مثال، وبسایتهایی که در پسزمینه موسیقی پخش میکنند یا فعالیت مهمی دارند.
البته برخی فعالیتها مانند پخش صدا و تصویر، تماسهای اینترنتی، دانلود فعال و اشتراکگذاری صفحه میتوانند مانع غیرفعال شدن خودکار زبانهها شوند.
کروم تنها مرورگر پرمصرف نیست
مرورگرهای دیگر نیز برای مدیریت حافظه از روشهای خاص خود استفاده میکنند. مایکروسافت اج که بر پایه زیرساخت کرومیوم ساخته شده، از معماری چندفرایندی مشابهی بهره میبرد، اما قابلیتهایی مانند Sleeping Tabs و Energy Saver را نیز برای کاهش مصرف منابع در اختیار کاربران قرار میدهد.
این قابلیتها زبانههای غیرفعال را به حالت خواب میبرند و با کاهش فعالیت آنها، به صرفهجویی در مصرف حافظه و انرژی کمک میکنند.
فایرفاکس نیز از معماری چندفرایندی استفاده میکند و در شرایطی که حافظه سیستم رو به کاهش باشد، میتواند زبانههای غیرفعال را از حافظه خارج کند تا از بروز اختلال و بسته شدن مرورگر جلوگیری شود.
در واقع، هیچیک از این مرورگرها راهحل جادویی برای حذف مصرف حافظه ندارند. اجرای صفحات وب پیچیده، محتوای چندرسانهای و افزونههای متعدد به منابع پردازشی نیاز دارد و کاهش چشمگیر مصرف رم بدون ایجاد تغییر در امکانات یا عملکرد مرورگر، کار سادهای نیست.
اگر کروم کند شده است، مشکل را فقط در رم جستوجو نکنید
اگر هنگام کار با کروم احساس میکنید مرورگر کند شده است، بهتر است پیش از هر اقدامی به سراغ ابزار مدیریت وظایف آن بروید و ببینید کدام زبانه یا افزونه بیشترین منابع سیستم را مصرف میکند.
اگر فرایند خاصی به شکل غیرعادی حافظه اشغال میکند، بستن آن یا غیرفعال کردن افزونه مربوط میتواند به بهبود عملکرد مرورگر کمک کند. اما اگر چنین مشکلی وجود ندارد، صرفاً بالا بودن عدد مصرف رم به معنای وجود اختلال نیست.
گاهی دلیل کندی مرورگر را باید در عوامل دیگری جستوجو کرد؛ برای مثال، پر شدن فضای ذخیرهسازی رایانه یا پایین بودن سرعت اتصال اینترنت نیز میتواند تجربه وبگردی را مختل کند. در چنین شرایطی، بستن و راهاندازی مجدد مرورگر یکی از نخستین اقداماتی است که میتوان امتحان کرد.
در نهایت، مصرف بالای رم در کروم را نمیتوان بهتنهایی نشانه ضعف این مرورگر دانست. بخشی از این مصرف نتیجه معماریای است که با هدف افزایش امنیت، پایداری و سرعت طراحی شده است؛ بنابراین، پیش از آنکه کروم را به رمخواری متهم کنیم، بهتر است بدانیم این مرورگر با حافظه رایانه ما دقیقاً چه میکند.