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

از نظر نظری ممکن است حافظهی RAM پر شود؛ اگر چند برنامهی حجیم را همزمان اجرا کنید میتوان به این محدودیت رسید. اما در آن لحظه چه رخ میدهد؟ انتظار میرود آن برنامهها بسته شوند و حتی گوشی قفل کند؛ اما وقوع چنین وضعیتی بسیار نادر است. برای حفظ عملکرد روان و پاسخگو بودن دستگاه، اندروید پیش از آن که دست به بستن اپلیکیشنهایی بزند که ممکن است دوباره مورد استفاده قرار گیرند، چند مکانیزم هوشمند در اختیار دارد:
فشردهسازی با zRAM
zRAM یک بلوک فشردهشده از داده است که در حافظهی RAM نگهداری میشود و بهصورت پویا اندازهاش تغییر میکند. این فناوری صفحات حافظه را فشرده میکند تا فضای بیشتری آزاد شود و هر زمان نیاز باشد آنها را بازفشرده میکند. حافظهی اپلیکیشنهای بیاستفاده به zRAM منتقل میشود و در صورت نیاز دوباره به RAM اصلی بازمیگردد. همهی دستگاههای اندرویدی از zRAM بهره میبرند و سازندگان میتوانند حجم این حافظهی فشردهشده را تنظیم کنند تا بهترین تعادل میان سرعت و پایداری بهدست آید. هر چند فشردهسازی زیاد همیشه بهاندازهی انتظار، حافظه آزاد نمیکند چون zRAM همچنان از همان حافظهی فیزیکی استفاده میکند.
استفاده از فرآیند سوآپ و بستن اپلیکیشنها
اگر zRAM پر شود، اندروید ابتدا فرآیند kswapd را فعال میکند تا بخشهایی از حافظه که قابلیت بارگذاری مجدد از حافظهی ذخیرهسازی را دارند، به فضای ذخیرهسازی منتقل کند تا در صورت نیاز سریعاً بارگذاری شوند. اگر این راهکار هم بینتیجه باشد، ممکن است صفحات بیشتری از zRAM آزاد شوند یا حافظه به فایل سوآپ در حافظهی داخلی انتقال یابد. استفاده از سوآپ فیزیکی در اندروید استاندارد متداول نیست و عمدتاً در برخی رامهای سفارشی یا پیادهسازیهای خاص «حافظهی مجازی» توسط سازندگان دیده میشود.
در نهایت، اگر همهی این مکانیسمها پر شوند، اپلیکیشنهای غیرفعال بهصورت خودکار بسته میشوند تا جای لازم برای پردازشهای فعال فراهم شود. جزئیات دقیق این روند ممکن است نزد هر سازنده متفاوت باشد.
سامسونگ RAM Plus در برابر Memory Extension شیائومی
استفاده از گلکسی S25 اولترا با دوازده گیگابایت حافظهی RAM یک فرصت طلایی است تا سازوکار واقعی سیستم مدیریت RAM Plus مشخص شود. در کنار آن، شیائومی ۱۵ اولترا نیز با فناوری Memory Extension نیز رقیب اصلی این گوشی است که امکان افزودن حافظهی مجازی به گوشی را فراهم میکند.

پرسش اصلی این است که آیا RAM Plus صرفاً بر پایهی zRAM عمل میکند یا از فضای swap واقعی نیز استفاده میشود؟ این تفاوت اهمیت زیادی دارد، چراکه سامسونگ در سال ۲۰۲۳ مقالهای با عنوان Adaptive Swap منتشر کرده که در آن ترکیبی از فضای سریع zRAM و swap کندتر برای رسیدن به عملکرد بهینه پیشنهاد شده بود. همهی گوشیها از zRAM بهره میبرند و برخی نیز از swap استفاده میکنند، اما گلکسی S25 اولترا چنین نیست.
در مقابل، با فعال کردن گزینهی Memory Extension در شیائومی ۱۵ اولترا، فضای آزاد در مسیرهای /data و /storage/emulated کاهش مییابد. این دو مسیر به فضای مشترکی اشاره دارند و گرچه بدون دسترسی روت نمیتوان محل دقیق استفادهی حافظه را تعیین کرد، اما کاهش فضای ذخیرهسازی پس از راهاندازی مجدد دستگاه دقیقاً مطابق با حجم تعیینشده در تنظیمات Memory Extension است. در این میان، حجم کلی zRAM همچنان ثابت و برابر با شانزده گیگابایت باقی میماند.
چرا تنظیمات قابل تغییر وجود دارد؟
در سامسونگ، تغییر مقدار RAM Plus صرفاً بر حجم هدف دادهی فشردهشده در zRAM اثر میگذارد، نه بر اندازهی واقعی دستگاه zRAM. هرچه دادهی بیشتری فشرده شود، مصرف RAM واقعی توسط zRAM افزایش مییابد. این میزان به نسبت فشردهسازی بستگی دارد که با توجه به نوع داده و الگوریتم متغیر است.
مقدار بالاتر RAM Plus مانند هشت گیگابایت باعث میشود اپلیکیشنهای بیشتری در پسزمینه فعال بمانند، اما ممکن است بهدلیل بار اضافی فشردهسازی، کندی جزئی در عملکرد احساس شود. در مقابل، مقدار کمتر مانند سه گیگابایت، اولویت را به سرعت پاسخگویی سیستم میدهد، اما تعداد اپهای در حال اجرا در پسزمینه کاهش مییابد.

در گلکسی S25 اولترا، سامسونگ اجازه نمیدهد حتی با غیرفعالسازی RAM Plus، هدف zRAM کمتر از سه گیگابایت باشد. این محدودیت با توجه به دوازده گیگابایت RAM فیزیکی منطقی است، چراکه احتمالاً مصرف zRAM از یک گیگابایت فراتر نمیرود. البته این قاعده ممکن است در مدلهای اقتصادی سامسونگ که حافظهی کمتری دارند متفاوت باشد.
در نهایت، RAM Plus سامسونگ و Memory Extension شیائومی هر دو تلاش میکنند میان نگهداری بهتر اپلیکیشنها در پسزمینه و پاسخگویی سریعتر، توازن برقرار کنند. تفاوت در آن است که سامسونگ این امکان را با یک نوار لغزنده ساده در اختیار کاربر قرار میدهد، بدون نیاز به دستکاری در تنظیمات پیشرفتهی هسته.
وقتی حافظهی RAM پر شود، اندروید چه میکند؟
سیستم پیشفرض اندروید حافظه را بهصورت پویا مدیریت میکند و پر شدن کامل RAM عملاً غیرممکن است. وقتی به سقف برسد، اپلیکیشنهای غیرفعال بسته میشوند. ترکیب zRAM با سوآپ این نقطه را در استفادهی معمول تقریباً دستنیافتنی میکند. هرچند گوشیهایی که از سوآپ اضافی بهره میبرند در نگهداری اپها عملکرد بهتری دارند، ممکن است کمی کمتر پاسخگو به نظر برسند. تجربه با شیائومی ۱۵ اولترا نشان داده که شانزده گیگابایت RAM حتی برای حجم زیادی از اپلیکیشنهای موبایل بیش از نیاز است.
