چرا مرورگرها فضای زیادی از رم را اشغال میکنند؟
مرورگرها مدتهاست که به خاطر مصرف بیش از حد حافظه رم شهرت پیدا کردهاند. با یک جستجوی ساده میتوان صدها میم و پست در انجمنها را در مورد استفاده بالای رم توسط مرورگرها، حتی هنگام نمایش وبسایتهای ساده، پیدا کرد.
با تکامل وب، مرورگرهای وب نیز دگرگون شدهاند. آنها از پنجرههای استاتیک در دنیای متنی آنلاین به موتورهای محتوای پویا تبدیل شدهاند که تعاملات ما را با برنامههای وب غنی مانند تماسهای ویدیویی هدایت میکنند. اما با وجود این، حتی بهترین مرورگرهای وب نیز به عنوان ابزارهایی که رم زیادی را مصرف میکنند، شناخته میشوند. پس چرا مرورگرها به این میزان رم نیاز دارند و آیا باید نگران این موضوع باشیم؟
برنامههای تحت وب امروزه بسیار پیچیدهتر شدهاند
برنامههای تحت وب به دلایل مختلفی بسیار پیچیده شدهاند. فناوریهای وب مدتها به دلیل عدم پشتیبانی یکنواخت از استانداردهای جاوااسکریپت در بین مرورگرها، عقب مانده بودند و هر مرورگر اغلب دیدگاه خود را در مورد نحوه کارکرد وب ترویج میداد.
ترنسپایلرها، ابزارهایی که کد را از یک زبان به کد منبع برای زبان دیگر کامپایل میکنند، به حل این مشکل کمک کردند و به توسعهدهندگان اجازه دادند کد را در یک زبان سطح بالاتر یا برای یک استاندارد جدیدتر بنویسند و آن را به چیزی که توسط مرورگرهای قدیمیتر قابل درک است تبدیل کنند. دو مورد از محبوبترین ترنسپایلرها، بیسیل و تایپاسکریپت هستند که هر دو جاوااسکریپت سازگار با نسخههای قدیمیتر را میسازند.
این استانداردسازی همراه با توسعه چارچوبهای بزرگ برای ساخت رابطهای کاربری پیچیده مانند Vue، Angular.js و React بوده است. این موضوع همچنین ساخت طراحیهای واکنشگرا برای طیف وسیعی از اندازههای صفحه نمایش را آسانتر کرد. این چارچوبها ویژگیهایی را معرفی کردند که به ساخت صفحات وب بسیار پویا بدون از کار افتادن مرورگر شما کمک کردند.
وبسایتهای مدرن کدبیسهای عظیمی دارند
تمام این موارد به ما اجازه داده است تا برنامههای پیچیدهتری را برای وب بسازیم. Facebook.com (شامل کدهای مربوط به پشت صحنه) حاوی بیش از ۵۰ میلیون خط کد است که احتمالاً به طور قابل توجهی بیشتر از مرورگری است که روی آن اجرا میشود و بیش از ۱۰۰ برابر بیشتر از کامپیوتر اولین پرواز شاتل فضایی است.
بدیهی است که تمام این کدها به طور همزمان اجرا نمیشوند، اما این مثال نشان میدهد که وبسایتهای مدرن تقریباً به اندازه سیستمعاملها پیچیده هستند. آنها از مدیریت رسانه، مرورگر فایل، استریم ویدیو و تصویر، بکاندهای پیچیده ناهمزمان و بسیاری موارد دیگر استفاده میکنند. این امکان توسط برخی از فناوریهای ذکر شده در بالا فراهم شده است. و جای تعجب نیست که تعدادی از آنها توسط فیسبوک، که اکنون متا نام دارد، توسعه یافتهاند. وجود ChromeOS به تنهایی گواه این موضوع است.
مرورگرهای وب عملکرد را فدای پایداری، سرعت و امنیت میکنند
مرورگرها دائماً بین سرعت و عملکرد مصالحه میکنند. چه متوجه شوید یا نه، مرورگر شما دائماً در حال پیشبارگذاری و ذخیرهسازی محتوا بر اساس پیشبینی منابعی است که ممکن است در آینده به آنها نیاز داشته باشد. اگرچه این میتواند بر کل منابع سیستم در دسترس شما تأثیر بگذارد، اما همچنین میتواند به طور چشمگیری تجربه مرور وب شما را سریعتر کند.
مرورگرهای مدرن برای جداسازی پردازشها، در زمینه مصرف حافظه نیز ملاحظاتی را در نظر میگیرند. در اینجا بهطور خاص به مرورگرهای مبتنی بر کرومیوم میپردازیم، زیرا محبوبترین موتور رندرینگ وب است. مدل پردازش کرومیوم کمی پیچیده است، اما بهطور خلاصه، این مرورگر برای هر «مورد وبسایت» یک پردازش مجزا ایجاد میکند. «مورد وبسایت» شامل وبسایت خاص و منابع مرتبط با آن است. این کار به محدود کردن تأثیر هر گونه پردازش قفلشده کمک میکند، اما در مقابل منجر به مصرف بیشتر حافظه برای هر پردازش میشود.
این قابلیت همچنین «جدا سازی سایت» را فعال میکند که توانایی وبسایتها را برای دسترسی به دادههای یکدیگر در مرورگر محدود میکند و در برابر طیف وسیعی از تهدیدات امنیتی محافظت ایجاد میکند. کرومیوم در گذشته از مدلهای پردازش به ازای هر سایت، پردازش به ازای هر تب و تک-رشتهای استفاده میکرد، اما به مرور زمان به سمت سندباکس (ایجاد محیط ایزوله) بیشتر برای سایتها حرکت کرده است که منجر به افزایش مصرف حافظه میشود. در ابتدا، مرورگرها تکرشتهای بودند و گیر کردن یا خرابی یک صفحه وب میتوانست کل مرورگر را متوقف کند.
وب مملو از محتوای غنی است
این موضوع کمی سادهتر است. همانطور که وب پویاتر و سریعتر شده و محتوای غنی بیشتری پیدا کرده است، صفحات وب نیز سنگینتر شدهاند. صفحات وب بیشتر شامل تصاویر با وضوح بالا، ویدئو، گرافیک و تبلیغات هستند. همانطور که پیشتر برجسته کردیم، محتوای پویا، انیمیشنها و جلوههای غنی نیز ساخت آنها بسیار آسانتر شده و در نتیجه رایجتر شدهاند.
علاوه بر این، مقدار قابل توجهی از محتوا تقریباً به صورت نامرئی در مرورگر شما در حال اجرا است – همه چیز از تجزیه و تحلیل رابط کاربری و اسکریپتهای ردیابی گرفته تا قلابهای شبکههای اجتماعی و موارد دیگر. همه اینها محتوایی است که باید توسط مرورگرها بارگیری و مدیریت شود. این به ویژه در مورد پلتفرمهای شبکههای اجتماعی مانند X، فیسبوک یا ردیت صادق است، جایی که هر صفحه وب مملو از محتوای غنی محسوب میشود.
مصرف زیاد رم چیز بدی نیست
این موضوع اغلب بین کاربرانی که در مورد مصرف بالای رم مرورگر در سیستم خود صحبت میکنند، سبب سردرگمی میشود؛ این مصرف بالا همیشه هم چیز بدی نیست. مرورگر وب شما به احتمال زیاد یکی از پرکاربردترین و مهمترین برنامههای کامپیوتر شخصی شماست و به عنصری ضروری در کامپیوترهای امروزی تبدیل شده است. رم (حافظه دسترسی تصادفی) برای ذخیرهسازی موقت دادهها با سرعت بالا در ارتباط مستقیم با پردازنده مرکزی (CPU) شما طراحی شده است و یک سطح بالاتر از حافظه کش داخلی CPU قرار میگیرد.
در حالی که باید مقداری از حافظه را برای سایر کارها آزاد نگه داریم، خالی نگه داشتن رم هیچ کمکی به بهبود عملکرد رایانه شما نمیکند. استفاده مرورگرها از این عملکرد و ظرفیت برای پیشبارگذاری، ذخیرهسازی موقت (cache) و بهینهسازی محتوا به منظور بهبود تجربه مرور شما بسیار منطقی است. بنابراین، با تکامل وب و قدرتمندتر شدن رایانهها، مرورگرها به درستی به توان بیشتری در طول زمان نیاز داشتهاند.
نگران رم نباشید: مرورگرها بهتر از همیشه هستند
با دیدن میزان استفاده از رم توسط مرورگر، به سادگی ممکن است تصور کنید که مشکلی وجود دارد، اما به این برنامه پرکاربرد هم حق بدهید. تجربه مرور وب امروزه بهتر از هر زمان دیگری است: مرورگرها سریعتر، پایدارتر و امنتر از گذشته شدهاند. مرورگر شما تقریباً به طور قطع یکی از مهمترین و پرکاربردترین برنامههای روی رایانهتان است و توانایی آن در نمایش هر چیزی، از گیفهای گربهها و بازیهای آنلاین گرفته تا ویدیوهای با کیفیت بالا، قابل تحسین است. اگر با مصرف بالای حافظه در کامپیوتر خود دست و پنجه نرم میکنید و مرورگر عامل آن است، شاید بهتر باشد به فکر ارتقای سیستم خود باشید یا برخی از برنامههای پسزمینه را ببندید.
منبع: XDA