مدیریت رم iOS درمقابل اندروید: کدام سیستمعامل مدیریت رم بهتری دارد؟
تعیین ظرفیت حافظهی دسترسی تصادفی (RAM) هر گوشی برای انجام فرایندهای چندوظیفهای روان، موضوعی مبهم است؛ بهخصوص اینکه گوشیهای اپل و اندروید هرکدام از ظرفیتهای رم متفاوتی بهره میبرند. گوشیهای هوشمند برای میزبانی سیستمعاملها مانند اندروید و iOS، اجرای برنامهها و دادههای آن برنامهها و برخی از دادههای حافظهی کش و بافر به رم متکی هستند.
اجرای روان برنامهها نیازمند سازماندهی و مدیریت رم در هر گوشی است. هر برنامه در زمان راهاندازی برای اجرا و بارگیری به فضایی آزاد در حافظهی دردسترس نیاز دارد و بههمینترتیب، هنگامی خروج از هر برنامه، این فضای اشغالشده به سیستمعامل بازگردانده شود.
تا زمانیکه رم آزاد و کافی برای اجرای برنامهها دردسترس باشد، مشکلی بهوجود نمیآید. دغدغهی اصلی در شرایطی مطرح میشود که حافظهی موردنیاز هر برنامه برای اجرا وجود نداشته باشد. درادامه نحوهی مدیریت رم در چنین شرایطی را هم برای iOS و هم برای اندروید بررسی میکنیم:
عناوینی که در این مقاله خواهید خواند
- تاریخچهی مختصر نحوهی مدیریت رم در iOS و اندروید
- میزان رم اندروید درمقابل iOS
- مقایسهی زبان برنامهنویسی Objective-C/Swift با Java/Kotlin
- رم ایدئال در آیفون چقدر است؟
- رم ایدئال در گوشیهای اندرویدی چقدر است؟
- مقایسهی نحوهی مدیریت رم در iOS با اندروید
تاریخچهی مختصر نحوهی مدیریت رم در iOS و اندروید
ظرفیت رم گوشیهای هوشمند در روزهای اولیهی معرفی سیستمعاملهای اندروید و iOS آنچنان زیاد نبود و تقاوت زیادی میان آیفون و اندروید وجود نداشت. برای مثال، گوشی اچتیسی دریم (HTC Dream) که در سال ۲۰۰۸ معرفی شد، تنها به ۱۹۲ مگابایت حافظهی رم و اولین آیفون نیز تنها به ۱۲۸ مگابایت رم مجهز بود.
آیفون 3G با ۱۲۸ مگابایت حافظهی رم و آیفون 3GS با ۲۵۶ مگابایت حافظهی رم عرضه شدند. ظرفیت رم در آیفون ۴ دو برابر شد و در آیفون ۵ بازهم افزایش یافت. ظرفیت رم آیفونهای اپل تا سال ۲۰۱۵، به ۱ گیگابایت رسید. این میزان در آیفون ۶ اس به ۲ گیگابایت و درنهایت در آیفون ۱۳ به ۶ گیگابایت ارتقا پیدا کرد.
میزان رم اندروید درمقابل iOS
در اکوسیستم اندروید، گلکسی اس سامسونگ (از سال ۲۰۱۰) با ۵۱۲ مگابایت حافظهی رم و گلکسی اس ۲ با ۱ گیگابایت حافظهی رم عرضه شد. گلکسی اس ۳ (۲۰۱۲) مانند گلکسی اس ۴ (سال ۲۰۱۳) با ۲ گیگابایت حافظهی رم روانهی بازار شدند. طبق نمودار بالا، ظرفیت رم گوشیهای آیفون و اندروید بهطور چشمگیری متفاوت است.
سامسونگ در گلکسی اس ۴ (۲۰۱۳) از ۲ گیگابایت حافظهی رم بهره میبرد؛ درحالیکه اپل دو سال بعد آیفون ۶ اس را با ۲ گیگابایت حافظهی رم عرضه کرد. در سالهای ۲۰۲۱ و ۲۰۲۲ گوشیهای پرچمدار اندرویدی مانند گلکسی اس ۲۲ اولترا به ۱۶ گیگابایت حافظهی رم مجهز شدند.
تفاوت در ظرفیت رم گوشیهای آیفون و اندروید ممکن است این شبهه را ایجاد کند که نحوهی مدیریت رم در گوشیهای اپل بهینهتر است یا آیفونها بهاندازهی گوشیهای اندرویدی به رم نیاز ندارند. این عبارات درظاهر منطقی بهنظر میرسند؛ اما موضوع به این سادگیها نیست. تفاوت در ظرفیت رم گوشیهای آیفون و اندروید بیشتر از اینکه به بهینهسازی ربط داشته باشد، به تصمیم سیستمعامل اندروید برای استفاده از زبان برنامهنویسی جاوا مرتبط است.
مقایسهی زبان برنامهنویسی Objective-C/Swift با Java/Kotlin
هنگامیکه توسعهدهندهای برنامهای را برای iOS توسعه میدهد، برنامهی مدنظر بهطور مستقیم روی کدی کامپایل خواهد شد که میتواند روی پردازندهی آیفون اجرا شود. درواقع، کدها بهطور بومی کامپایل میشوند و برای اجراشدن به تغییر یا محیط مجازی اضافهای نیاز ندارند.
اندروید با استفاده از زبان برنامهنویسی جاوا، در این زمینه متفاوت عمل میکند. هنگامیکه کد جاوا کامپایل میشود، به کدی مستقل از پردازنده به نام (Java Bytecode) تبدیل میشود که روی پردازندهی آرم یا پردازندهی x86 یا پردازندهای مبتنیبر معماری RISC-V قابل اجرا است. جاوا با شعار «یک بار بنویس، همهجا اجرا کن» مزیتهای زیادی برای سازگاری بینپلتفرمی دراختیار توسعهدهندگان قرار میدهد.
جاوا با تمام مزیتهایی که ارائه میکند، یک ضعف دارد: سیستمعاملها و ترکیب پردازندههای آنها برای اجراشدن به محیطی نیاز دارند که کد جاوا را قسمتقسمت تفسیر و آن را به کد اصلی پردازنده تبدیل کند. این محیط ماشین مجازی جاوا (JVM) نامیده میشود.
با گذشت زمان، تکنیکهای مختلفی برای سرعتبخشیدن به این فرایند معرفی شد. ازجملهی این تکنیکها میتوان به کشکردن تکههای تفسیرشدهی قبلی، کامپایل بهموقع به کد بومی، کامپایل پیش از موعد و... اشاره کرد. بااینحال، هرچقدر هم که این تکنیکها خوب عمل کنند، همچنان دو مشکل باقی میماند:
- اجرای کد بومی بهتر از اجرای کد ازطریق JVM است.
- استفاده از JVM (حتی درصورت استفاده از کامپایلهای پیش از موعد) میزان رم استفادهشده در برنامه را افزایش میدهد.
درادامه، جدولی از میزان رم استفادهشدهی برنامههای مختلف در iOS و اندروید را مشاهده میکنید:
نام برنامه | iOS (مگابایت) | اندروید (مگابایت) |
---|---|---|
پلیاستور/اپاستور | ۲۳۵ | ۲۱۷ |
Acrobat Reader | ۱۱۷ | ۳۹۰ |
Booking.com | ۷۳ | ۳۳۰ |
Gmail | ۱۹۰ | ۲۵۹ |
Google Maps | ۲۲۴ | ۳۰۰ |
Youtube | ۱۷۶ | ۲۸۲ |
eBay | ۶۹ | ۳۰۰ |
Google Photos | ۱۳۶ | ۲۸۱ |
۱۰۰ | ۳۶۶ |
همانطورکه در جدول بالا مشاهده میکند، برنامهها در سیستمعامل iOS درمقایسهبا سیستمعامل اندروید بهطور میانگین ۴۰ درصد (در برخی موارد تا ۷۰ درصد) از رم کمتری استفاده میکنند. در شرایط برابر، آیفون ۴۰ درصد کمتر رم برای نگهداشتن برنامهها در حافظه احتیاج دارد. برای مثال، اگر آیفون 13 پرو برای اجرای برنامهای ۶ گیگابایت حافظهی رم نیاز داشته باشد، گوشی اندروید همرده با آن برای اجرای همان برنامه به ۸ گیگابایت حافظهی رم نیاز خواهد داشت.
ناگفته نماند همهی برنامههای سیستمعامل اندروید از JVM استفاده نمیکنند. برنامههای بومی زیادی وجود دارند که اکثراً بازی هستند و از رابط کاربری یا چهارچوبهای مختلف اندروید استفاده نمیکنند.
اندروید برای توسعهدهندگان بازیها راهی را فراهم کرده است تا بتوانند کد منبع خود را مستقیماً در باینریهای بومی کامپایل کنند. این کد مستقیماً روی پردازنده بدون JVM اجرا میشود. تمام ابزارهای محبوب گیمینگ، مانند Unity و Unreal با کامپایلکردن کد برای اجرای بومی، بدون نیاز به استفاده از JVM کار میکنند.
در جدول زیر، میزان رم استفادهشدهی بازیهای مختلف iOS و اندروید را مشاهده میکنید:
نام بازی | iOS (مگابایت) | اندروید (مگابایت) |
---|---|---|
Subway Surfers | ۵۰۰ | ۷۶۱ |
1945Airforce | ۵۵۰ | ۸۵۲ |
Candy Crush | ۲۱۹ | ۲۸۹ |
Brawl Stars | ۵۷۲ | ۵۰۷ |
Minecraft | ۴۶۲ | ۸۰۳ |
Asphalt 9 | ۷۴۹ | ۸۰۳ |
Shadowgun Legends | ۱۱۳۰ | ۸۹۹ |
Elder Scrolls Blade | ۱۰۳ | ۹۵۲ |
Genshin Impact | ۱۲۷۰ | ۱۴۰۰ |
برخلاف برنامهها، برخی بازیها در سیستمعامل اندروید از رم کمتری (تا ۲۰ درصد کمتر) استفاده میکنند؛ درحالیکه برخی دیگر به رم بیشتری نیاز دارند. بازیها در سیستمعامل iOS درمقایسهبا نسخههای اندرویدی بهطور متوسط ۱۰ درصد کمتر رم مصرف میکنند. این اختلاف تفاوت میان استفاده از JVM و رابط کاربری اندروید را درمقایسهبا ساخت بازی با کدهای بومی نشان میدهد.
۱۰ درصد میزان زیادی است؛ اما در چنین میزان تفاوتی، باید مواردی مانند نسخههای کامپایلر، وضوح نمایشگر، فشردهسازی، وضوح بافتها، Metal ،Open GL ES و... را بررسی کرد؛ اما بهطورکلی، میتوان گفت که میزان رم موردنیاز برای برای گیمرهای اندرویدی و iOS تقریباً مشابه است.
رم ایدئال در آیفون چقدر است؟
برای بررسی میزان رم ایدئال برای گوشیهای هوشمند، ابتدا باید مفهوم ایدئال را تفسیر کنیم. معمولاً برنامهها در آیفون، حتی در مدلهای قدیمیتر، روان و بدون مشکل اجرا میشوند؛ اما باید دید که چند اپلیکیشن یا بازی میتوانند بهطور همزمان در حافظهی دستگاه باقی بمانند؟
بهعبارتدیگر، بین چند برنامه بدون نیاز به بارگیری مجدد میتوان جابهجا شد؟ هر کاربر در طول روز چند بار و از چه برنامهها یا بازیهایی استفاده میکند؟ برای مثال، اگر کاربری ایمیلی بفرستد، سپس یک بازی را اجرا کند، محتوایی را در رسانههای اجتماعی بهاشتراک بگذارد و دوباره به اپلیکیشن ایمیل بازگردد و متوجه شود که این اپ دوباره بارگیری میشود، تجربهی کاربری ناخوشایندی خواهد داشت و خیلی زود ناامیدی خواهد شد.
درواقع، تعریف «ایدئال» تا حدی به نحوهی استفاده کاربر از گوشی مربوط میشود. بهرهوری، گیمینگ، استفاده از شبکههای اجتماعی، فیلمبرداری، عکاسی یا ویرایش فیلم و عکس همهوهمه جنبههای مختلفی از فعالیتهایی هستند که میتوانند تجربهی کاربری متفاوتی ایجاد کنند.
اگر هنگام اجرای برنامهای حافظهی آزاد کافی دردسترس نباشد، سیستمعامل iOS یکی از دو کار زیر را انجام خواهد داد:
- در ابتدا سعی میکند برخی از بلوکهای حافظه (به نام صفحات) را فشرده کند که مدتی استفاده نشدهاند. بعد از فشردهسازی، آنها را دوباره در حافظه مینویسد. برای مثال، اگر ۱۲۸ هزار صفحه با این شرایط وجود داشته باشد، با فرض فشردهسازی ۵۰ درصدی، میتوان ۱۲۸ هزار صفحه را به ۶۴ هزار فشردهسازی کرد تا ۶۴ هزار صفحه برای اجرای بقیهی برنامهها آزاد شود.
- اگر حافظهی کافی با استفاده از فشردهسازی آزاد نشد، iOS برنامهای را از رم حذف میکند تا حافظهی آن را بازیابی کند. این فرایند بهعنوان رویداد Jetsam شاخته میشود (jetsam به فرایند به آبانداختن کالایی برای سبک کردن کشتی گفته میشود). در چنین شرایطی، اگر به برنامهی حذفشده برگردید، آن اپلیکیشن باید دوباره بارگیری شود.
نمودار زمانی زیر مقدار رم استفادهشده و مقدار رم فشردهشده را با اجرای هر برنامه پس از برنامهی قبلی در آیفون SE 2020 با ۳ گیگابایت حافظهی رم نشان میدهد.
OS در ابتدا فقط حدود ۲۰۰ مگابایت حافظهی رم را برای اجرای برنامهی اپاستور و استفادهی بیش از ۲ گیگابایت حافظهی رم فشردهسازی میکند. سپس با شروع برنامههای مختلف، مقدار رم استفادهشده و مقدار رم فشردهشده نیز افزایش مییابد. اولین افزایش درخورتوجه برای فشردهسازی در اجرای برنامهی Booking.com مشاهده میشود.
هنگام راهاندازی برنامهی گوگل فوتوز نیز دوباره میزان رم فشردهشده افزایش پیدا میکند؛ چراکه iOS برای اجرای این برنامه به بیش از ۱ گیگابایت حافظهی رم نیاز پیدا میکند. همزمان با اجرای برنامهی Tasty، بیش از ۱۲ اپلیکیشن در حافظه وجود دارد که هیچکدام حذف نشدند. برای فشار بیشتر حافظه روی سیستم، در گام آخر اپلیکیشن سافاری اجرا میشود و چند وبسایت در تبهای مجزا روی آن بارگذاری میشوند. در این مرحله، سافاری ۸۵۰ مگابایت حافظهی رم استفاده و iOS بهناچار برنامهی Keynote را از حافظه خارج میکند.
همانطورکه قبلاً اشاره شد، بازیها درمقایسهبا اپلیکیشنها از حافظهی بیشتری استفاده میکنند. همین گوشی (آیفون SE با ۳ گیگابایت حافظهی رم) میتواند حدود چهار بازی (Subway Surfers ،Brawl Stars، کندیکراش و 1945Airforce) را همزمان در حافظهی خود نگه دارد. iOS در این گوشی همزمان با شروع بازی پنجم، یعنی آسفالت ۹، دو بازی Subway Surfers و 1945Airforce را فشرده میکند تا رم موردنیاز برای اجرای بازی جدید فراهم شود.
وقتی رم بیشتر باشد، برنامهها و بازیها کمتر فشرده میشوند. در نمودار زمانی زیرU عملکرد آیفون ۱۳ پرو (با ۶ گیگابایت حافظهی رم) و نحوهی مدیریت حافظهی آن با اجرای هر بازی پس از بازی قبلی نشان داده شده است:
آیفون ۱۳ پرو درمقایسهبا آیفون SE دو برابر بیشتر رم دارد و میتواند بازیهای بیشتری را بهطور همزمان در حافظهی خود نگه دارد. آخرین بازیهایی که اجرا میشوند، حجم زیادی دارند و برخی از آنها برای اجرا بیش از ۱ گیگابایت حافظهی رم نیاز خواهند داشت.
قبل از اجرای Genshin Impact، بیش از ۲ گیگابایت حافظهی رم فشردهسازی میشود و همزمان با اجرای این بازی، سیستمعامل iOS دیگر نمیتواند با فشردهسازی حافظهی بیشتری آزاد کند؛ بنابراین، سه بازی 1945Airforce و Subway Surfers و Brawl Stars را از حافظه حذف میکند تا بازی جدید اجرا شود.
آیندهنگری یکی از جنبههای مهمی است که کاربران باید هنگام خرید گوشی به آن توجه کنند. بازی Genshin Impact بازی حجیم سال ۲۰۲۰ است که بیش از ۱٫۲ گیگابایت حافظهی رم اشغال میکند. بنابراین، گیمرها در انتخاب آبفون باید به موضوع توجه و مدلی را انتخاب کنند که بیشترین رم ممکن را دراختیار آنها قرار دهد؛ چراکه بازیهای سالهای آینده، قطعاً سنگینتر خواهند بود.
نتیجهگیری
برای کاربرانی که تنها از برنامههای بهرهوری و شبکههای اجتماعی استفاده میکنند، ۳ گیگابایت حافظهی رم روی iOS کافی بهنظر میرسد؛ اما گیمرها و کسانی که قصد دارند تا چند سال آینده از گوشی خود استفاده کنند، باید به فکر خرید آیفونی با حداقل ۶ گیگابایت حافظهی رم باشند.
رم ایدئال در گوشیهای اندرویدی چقدر است؟
اپلیکیشنها در سیستمعامل اندروید درمقایسهبا سیستمعامل iOS از رم بیشتری استفاده میکنند. این بدانمعنا است که خود سیستمعامل اندروید و اپلیکیشنهای پیشفرض آن نیز به حافظهی بیشتری برای اجرا نیاز دارند. پس میتوان اینگونه برداشت کرد که بهطورکلی اندروید از همان ابتدا رم بیشتری استفاده میکند.
هنگامی که سیستمعامل اندروید برای اجرای بازی یا اپلیکیشنی حافظهی کافی دردسترس نداشته باشد، از تکنیکهای بسیار مشابهای با iOS استفاده میکند. در چنین شرایطی، اندروید صفحات حافظه را فشرده میکند. این روش تبدیل رم به zRAM نامیده میشود. حرف z در zRAM مانند سیستمعامل یونیکس/لینوکس، برای نشاندادن فشردهسازی استفاده میشود.
برای بررسی این موضوع، گوشی پیکسل با ۴ گیگابایت حافظهی رم برای اجرای برنامههای مختلف آزمایش شده است. این گوشی میتواند همهی اپلیکیشنهای آزمایششدهی قبلی (از پلیاستور گرفته تا توییتر) را اجرا کند و همهی این اپها را در حافظه نگه دارد؛ بنابراین، میتوان بهطور آزادانه و بدون بارگیری مجدد، بین آنها جابهجا شد. بااینحال، هنگام اجرای بازیها در اندروید، داشتن تنها ۴ گیگابایت حافظهی رم شرایط را کمی متفاوت خواهد کرد:
گوشی پیکسل ۳ ایکسال از ۴ گیگابایت حافظهی رم بهره میبرد؛ اما فقط ۳٬۵۷۹ مگابایت از این حافظه را دراختیار کاربر قرار میدهد. حدود ۰٫۵ گیگابایت حافظهی رم از همان ابتدا برای سیستمعامل استفاده میشود.
با شروع اجرای بازیها، فشردهسازی حافظه (تبدیل به zRAM) افزایش پبدا میکند. وقتی Brawl Stars روی گوشی پیکسل اجرا میشود، بیش از ۱٫۵ گیگابایت از رمِ فشرده استفاده میشود؛ اما بهنظر میرسد که این میزان کافی نیست و برای ایجاد فضای خالی بیشتر، بازی Subway Surfers نیز بسته خواهد شد. این داستان برای دستگاهی مانند گلکسی اس ۲۱ اولترا سامسونگ که ۱۲ گیگابایت حافظهی رم دارد، متفاوت است:
ظرفیت رم بیشتر امکان اجرای همزمان تعداد بیشتری بازی را فراهم میکند. باتوجهبه نمودار بالا، میتوان اینگونه برداشت کرد که ۱۲ گیگابایت حافظهی رم در اندروید برای گیمرها کاملاً کافی است و همهی بازیها از Subway Surfers گرفته تا Genshin Impact بعد از اجرا در حافظهی گلکسی اس ۲۱ اولترا باقی میمانند.
این گوشی حتی تا زمان اجرای Shadowgun Legends، احتیاجی به استفاده از همهی ظرفیت حافظه ندارد و بعد از آن نیز، بسته به نیاز مقدار zRAM استفادهشده را افزایش میدهد. هیچ بازیای با اجرای بازی دیگر از حافظه حذف نمیشود. درواقع برای حذف اجباری یک بازی از حافظه، باید اپلیکیشن کروم را راهاندازی و ۱۲ تب مجزا روی آن باز کرد. در چنین شرایطی، سیستمعامل اندروید بازی Minecraft را از حافظه حذف میکند.
نتیجهگیری
برای کاربرانی که از تعداد معدودی اپلیکیشن بهطور همزمان استفاده میکنند و اهل وبگردی طولانیمدت با گیمینگ نیستند، گوشی اندرویدی با ۴ گیگابایت حافظهی رم کافی بهنظر میرسد. رم ۶ گیگاباتی نیز برای استفاده از اپلیکیشنهای بهرهوری، شبکههای اجتماعی، اجرای بازی در سطح عادی و وبگردی جوابگو خواهد بود.
۸ گیگابایت حافظهی رم برای گوشیهای میانرده یا ردهبالای اندرویدی تجربهی چندوظیفهای رضایتبخشی ارائه خواهد کرد؛ بااینحال، ۱۲ گیگابایت حافظهی رم حافظهای بسیار مناسب برای گیمرها و کاربرانی حرفهای محسوب میشود که میتواند تا چندین سال نیز حافظهای کارآمد باشد.
مقایسهی نحوهی مدیریت رم در iOS با اندروید
اندروید و iOS هر دو از تکنیک فشردهسازی برای ایجاد فضای موردنیاز و افزایش ظرفیت رم استفاده میکند. هر دو سیستمعامل این کار را بهسرعت انجام میدهند و هر دو باید حافظهی فشردهشده را قبل از استفادهی مجدد، از حالت فشرده خارج کنند. عملکرد این دو سیستمعامل ازنظر فناوری تقریباً مشابه است؛ البته باید توجه کرد که بهطورکلی اندروید بیشتر از iOS تلاش میکند تا اپلیکیشنهای موجود را حذف نکند. این سیستمعامل روی فشردهسازی رم بیشتر تمرکز دارد.
بااینحال، ازآنجاکه iOS از کد بومی استفاده میکند، اپلیکیشنهای IOS و خود این سیستمعامل سبکتر هستند. این تمایز هنگام اجرای بازیها اثربخشی کمتری دارد؛ اما همچنان عامل بزرگی بهشمار میآید. گیمرهای حرفهای و کسانی که قصد دارند از گوشی خود در سالهای آینده نیز استفاده کنند، به آیفونهایی با ۶ گیگابایت حافظهی رم نیاز خواهند داشت.
در بررسیها آیفون ۱۳ پرو در حفظ برنامهها روی حافظه بهخوبی گلکسی اس ۲۱ اولترا عمل نکرد؛ اما باید این نکته نیز در نظر گرفته شود که ظرفیت رم اس ۲۱ اولترا دوبرابر آیفون ۱۳ پرو است.
باتوجهبه عملکرد اندروید و نیاز این سیستمعامل به حافظهی بیشتر، کاربرانی که میخواهند هنگام کار با گوشی اندرویدی تجربهای مشابه با آیفون مجهز به ۶ گیگابایت حافظهی رم داشته باشند، باید از گوشیهای اندرویدی مجهز به ۸ گیگابایت حافظهی رم یا بیشتر استفاده کنند.