مبحث مقدار رم یا حافظه تصادفی مورد نیاز برای گوشیهای هوشمند مبحث پیچیدهای است، چرا که گوشیهای مجهز به اندروید و iOS مقادیر مختلفی رم ارائه میکنند. این حافظه در واقع اطلاعات سیستم عامل و برنامههای مختلف را زنده نگه میدارد. ولی آیفون و اندرویدیها در مقایسه با یکدیگر چگونه حافظه رم را مدیریت میکنند، چه تفاوتهایی میان سازوکارهای آنها وجود دارد و کدام یک بهتر عمل میکند؟
تاریخچهای از مدیریت رم در اندروید و iOS
در سال 2008 که HTC Dream معرفی شد، این گوشی فقط 192 مگابایت حافظه رم دارد. نسل اول آیفون هم تنها از 128 مگابایت رم بهره میبرد. آیفون 3G همین مقدار رم را حفظ کرد اما با آیفون 3GS مقدار رم به 256 مگابایت افزایش یافت. رم در آیفون 4 دو برابر و دوباره در آیفون 5 دو برابر شد. اپل تا سال 2015 مقدار حافظه تصادفی را همان 1 گیگابایت نگه داشت، اما با آیفون 6S این مقدار را به 2 گیگابایت رساند. این شرکت حالا در آیفون 13 پرو از 6 گیگابایت رم استفاده میکند.
در اکوسیستم اندروید شرایط فرق میکند. نسل اول گلکسی S در سال 2010 با 512 مگابایت رم عرضه شد و نسل دوم این دستگاه 1 گیگابایت حافظه تصادفی داشت. گلکسی S3 در برخی مدلها و همچنین گلکسی S4 از 2 گیگابایت رم بهره میبردند. این شرکت حالا در سال 2022 با گلکسی S22 اولترا حداکثر 16 گیگابایت رم ارائه میکند.
چنین تفاوت چشمگیری در مقدار رم میان اندروید و iOS باعث به وجود آمدن این تصور شده که آیفون بهتر از اندروید حافظه را مدیریت میکند. ولی ماجرا به همین سادگی نیست، چون مسئله بیشتر از بهینهسازیهای خود سیستم عامل به استفاده از زبان برنامهنویسی جاوا در کد اندروید برمیگردد.
آبجکتیو سی/سوئیفت در مقابل جاوا/کاتلین
برنامههایی که برای iOS نوشته میشوند، بهطور مستقیم توسط پردازنده آیفون اجرا میشوند یا به اصطلاح بومی هستند، چون نیازی به مفسر یا فضای شبیهسازی ندارند. ولی اندروید از جاوا استفاده میکند و کد برنامهها در زمان اجرا به یک کد واسط (جاوا بایتکد) تبدیل میشود که وابسته به پردازنده است. این جاوا بایتکد میتواند روی پردازندههای آرم، x86 و RISC-V اجرا شود. شعار جاوا این است: یک بار کد بنویسید، همه جا آن را اجرا کنید.
با این حال، مشکل جاوا این است که هر سیستم عامل و پردازنده به محیطی برای لحظه اجرا نیاز دارد که تحت عنوان «ماشین مجازی جاوا» (JVM) شناخته میشود. JVM جاوا بایتکد را میفهمد و آن را به کد بومی پردازنده تبدیل میکند. در این روش همچنان دو مشکل اصلی باقی میماند: اول، کد بومی بهتر از کدی عمل میکند که توسط JVM اجرا میشود. دوم، استفاده از JVM مقدار رم مورد نیاز برنامهها را افزایش میدهد. در ادامه جدولی را میبینید که مقدار رم مورد نیاز برنامهها در iOS و اندروید را نشان میدهد:
نام برنامه | iOS به مگابایت | اندروید به مگابایت |
Play Store/App Store | 235 | 217 |
Acrobat Reader | 117 | 390 |
Booking.com | 73 | 330 |
Gmail | 190 | 259 |
Google Maps | 224 | 300 |
YouTube | 176 | 282 |
eBay | 69 | 300 |
Google Photos | 136 | 281 |
100 | 366 |
همانطور که میبینید، اپلیکیشنهای iOS تا 70 درصد کمتر رم مصرف میکنند. میانگین این عدد 40 درصد است؛ یعنی iOS حدود 40 درصد کمتر از اندروید رم نیاز دارد. با این حال، همه اپلیکیشنها از JVM استفاده نمیکنند و بعضی از آنها بومی هستند. این برنامهها معمولا در دسته بازیها قرار دارند، چون بازیها از رابط کاربری اندروید یا فریمورکهای آن استفاده نمیکنند. در ادامه جدول مقدار رم مورد نیاز برای اجرای بازیها در iOS و اندروید را میبینید:
نام بازی | iOS به مگابایت | اندروید به مگابایت |
Subway Surfers | 500 | 761 |
1945 Airforce | 550 | 852 |
Candy Crush | 219 | 289 |
Brawl Stars | 572 | 507 |
Minecraft | 462 | 803 |
Asphalt 9 | 749 | 803 |
Shadowgun Legends | 110 | 899 |
Elder Scrolls Blade | 1030 | 952 |
Genshin Impact | 1270 | 1400 |
در اینجا نتیجه بسیار متفاوت است. حتی بازیهایی وجود دارند که در اندروید تا 20 درصد کمتر از iOS رم مصرف میکنند. ولی بهطور میانگین، همچنان مقدار رم مورد نیاز در iOS حدود 10 درصد کمتر است. این 10 درصد هنوز مهم تلقی میشود و شایسته بررسی دقیقتر است اما میتوانیم از آن چشمپوشی کنیم.
چقدر رم برای آیفون ایدهآل است؟
ابتدا باید تعریفی از «ایدهآل» داشته باشیم. اجرای یک اپلیکیشن حتی روی مدلهای قدیمی آیفون دشوار نیست. اما سوال این است که میتوانیم چند برنامه یا بازی را بهصورت همزمان در حافظه نگه داریم؟ به عبارت دیگر، میتوان چند اپلیکیشن را به شکلی باز نگه داشت که اگر به یک برنامه دیگر رفتید و دوباره به برنامه اول برگشتید، اطلاعاتتان از دست نرفته باشد؟ عبارت ایدهآل معمولا با توجه به نیازهای هر کاربر تعریف میشود.
اگر بخواهید یک برنامه را باز کنید و حافظه کافی نداشته باشید، iOS دو کار انجام میدهد. ابتدا سعی میکند آن دسته از بلوکهای حافظه (موسوم به صفحات) را که مدتی است از آنها استفاده نشده، فشرده کند. سیستم عامل برخی از این صفحات را (با استفاده از یک الگوریتم فشردهسازی به نام WKdm) فشرده میکند و دوباره آنها را در حافظه قرار میدهد. اگر 128 هزار صفحه داشته باشید و آنها را 50 درصد فشرده کنید، به اندازه 64 هزار صفحه فضای خالی به دست میآورید.
اگر با فرآیند فشردهسازی فضای کافی به دست نیاید، یک برنامه از حافظه بیرون انداخته میشود تا فضای آن آزاد شود. با این کار، اگر دوباره به اپلیکیشن اول برگردید، همه اطلاعات باید از نو بارگذاری شود. در ادامه نموداری از رم مصرفی و فشردهشده در آیفون SE 2020 با 3 گیگابایت رم را میبینید:
iOS در ابتدا، یعنی زمانی که 2 گیگابایت رم مصرف شده، فقط حدود 200 مگابایت را فشرده میکند. هرچه تعداد برنامهها بیشتر میشود، مقدار رم مصرفی و فشردهشده بالاتر میرود. زمانی که اپلیکیشن Tasty اجرا شد، بخشی از برنامههای قبلی از حافظه بیرون انداخته شدند. همانطور که قبلا گفتیم، بازیها مصرف حافظه بالایی دارند. در ادامه نمودار عملکرد آیفون 13 پرو با 6 گیگابایت رم را در زمان اجرای چند بازی میبینید:
این گوشی نسبت به آیفون SE 2020 (با حداکثر 4 بازی همزمان)، قادر است بازیهای بیشتری را در حافظه خود نگه دارد. هرچه در این نمودار جلوتر میرویم بازیها سنگینتر میشوند و برخی از آنها بیش از 1 گیگابایت رم مصرف میکنند. زمانی که بازی Genshin Impact اجرا شد، سیستم عامل دیگر نتوانست بخش بیشتری از حافظه را فشرده کند و Subway Surfers, 1945 Airforce و Brawl Stars را از حافظه خارج کرد.
در مجموع میتوان گفت رم 3 گیگابایتی آیفون SE 2020 برای کسانی که فقط از برنامههای کاربردی و شبکههای اجتماعی استفاده میکنند، کافی است. اما اگر به دنبال برنامههای چندرسانهای و مرور وب هستید، باید حداقل به فکر 4 گیگابایت رم باشید. اگر هم میخواهید روی موبایل خود بازی کنید، باید یک آیفون 6 گیگابایتی بخرید.
چقدر رم برای گوشیهای اندرویدی ایدهآل است؟
بالاتر دیدیم که گوشیهای اندرویدی برای اجرای اپلیکیشنها حافظه بیشتری میخواهند. زمانی که یک دستگاه حافظه کافی برای اجرای یک برنامه نداشته باشید، از تکنیکی مشابه iOS استفاده میکند و دست به فشردهسازی میزند. این سازوکار در اندروید به روش انتقال به zRAM مشهور است. یک گوشی پیکسل 4 گیگابایتی میتواند همه اپلیکیشنهای موجود در نمودار آیفون را اجرا کند و مشکلی از بابت جابهجا شدن بین آنها نداشته باشد. ولی بحث گیمینگ کمی دشوارتر میشود:
پیکسل 3 XL با 4 گیگابایت رم عرضه میشود اما 3579 مگابایت حافظه در دسترس دارد. با افزایش تعداد بازیها، مقدار فشردهسازی حافظه رم بالاتر میرود و زمانی که به اجرای بازی Brawl Stars میرسیم، بیش از 1.5 گیگابایت از حافظه فشرده شده اما این مقدار کافی نیست و Subway Surfers هم از رم بیرون انداخته میشوند.
شرایط برای گوشیهایی مثل گلکسی S21 اولترا با 12 گیگابایت رم، خیلی فرق میکند:
همانطور که میبینید 12 گیگابایت رم حتی برای خورههای بازی کاملا کافی است. در نمودار بالا همه بازیها حتی در زمان اجرای Genshin Impact در حافظه باقی ماندند. در واقع اگر بخواهید اندروید را مجبور به بیرون انداختن یکی از بازیها کنید، باید در کنار این بازیها یک مرورگر کروم با 12 زبانه باز کنید.
بنابراین 4 گیگابایت رم در اندروید برای کسانی که فقط از چند اپلیکیشن ساده استفاده میکنند و زیادی اهل وبگردی یا بازی نیستند، کافی است. اگر میخواهید استفاده جدیتری از موبایل خود داشته باشید و حتی کمی بازی کنید، باید به فکر 6 گیگابایت رم بیفتید. با رم 8 گیگابایتی میتوانید بهراحتی بهصورت همزمان از چندین برنامه استفاده کنید و آینده مطمئنتری داشته باشید. برای کسانی که به دنبال اجرای آسان بازیها و اپلیکیشنهای سنگیناند، 12 گیگابایت کاملا کافی است. و 16 گیگابایت هم با استانداردهای فعلی بیش از حد به نظر میرسد.
کدام بهتر است: iOS یا اندروید؟
اندروید و iOS برای ایجاد فضای بیشتر در حافظه دست به فشردهسازی میزنند. اگر دوباره بخواهید از اطلاعات فشردهشده برنامهها استفاده کنید، سیستم عامل باید آنها را از حالت فشرده خارج کند. هر دو سیستم عامل از نظر فناوری عملکرد خوبی دارند، ولی میتوان گفت که اندروید پیش از بیرون انداختن برنامههای باز فشردهسازی بیشتری انجام میدهد. ولی از آن طرف، چون در iOS شاهد اجرای کدهای بومی هستیم، برنامهها به خودی خود کوچکتر و سبکترند. این تفاوت در بحث بازیها کمتر میشود، اما همچنان حائز اهمیت است.
در پایان میتوان گفت که 6 گیگابایت رم در آیفون 13 پرو برای کاربران حرفهای و گیمرها کافی است. عملکرد این گوشی به اندازه گلکسی S21 اولترا با 12 گیگابایت رم خوب نیست، اما خیلی بهتر از گوشیهای اندرویدی مجهز به 6 گیگابایت رم عمل میکند. با توجه به این که اندروید در کل رم بیشتری نیاز دارد، به عنوان معادل یک آیفون 6 گیگابایتی باید یک موبایل اندرویدی 8 گیگابایتی را برای خرید مدنظر قرار دهید.
نظر شما در این باره چیست؟ فکر میکنید کدام سیستم عامل مدیریت حافظه بهتری دارد و چقدر رم برای چه کاربردهایی کافی است؟