چرا اندروید در مقایسه با iOS به رم بیشتری نیاز دارد؟ گوشیهای قدرتمند اندرویدی دارای رم زیادی هستند و دیدن ظرفیت ۱۲ گیگابایتی در محصولاتی مانند Pixel 6 Pro و Galaxy S22 Ultra چندان غیرمنتظره نیست. از طرفی گوشی های اپل معمولا از 6 یا 4 گیگابایت رم استفاده می کنند، اما همچنان عملکردی مشابه یا بهتر از گوشی های اندرویدی با رم بالا داریم، اما دلیل این موضوع چیست؟
رم چیست؟
RAM مخفف حافظه با دسترسی تصادفی است و انواع مختلفی را شامل می شود، اما رم مورد استفاده در گوشی های هوشمند از نوع SDRAM است. بر خلاف ذخیره سازی غیر فرار که اطلاعات را برای مدت طولانی ذخیره می کند، RAM فقط اطلاعات را در زمانی که دستگاه روشن است حفظ می کند.
به عبارت دیگر، رم را می توان نوعی «حافظه کاری» برای دستگاه در نظر گرفت. وقتی چندین برنامه یا محتوا را در یک برنامه باز میکنید، تلفن شما مقداری از RAM موجود را به هر یک از این فرآیندهای جدید اختصاص میدهد.
این روند تا زمانی ادامه خواهد داشت که رمی برای استفاده باقی نماند و گوشی مجبور شود یکی از عناصر پردازشی را خاتمه دهد تا عملکرد دستگاه دچار مشکل نشود. طبیعتا هر چه رم بالاتر باشد این مشکل کمتر پیش می آید.
چرا گوشی های اندرویدی به رم بیشتری نیاز دارند؟
حال که دانستیم رم چیست و چگونه کار می کند می توانیم به سوال اصلی خود برگردیم اما برای پاسخ به آن باید بگوییم که سوال مذکور دلیل صریح و قطعی ندارد بلکه عوامل متعددی دخیل هستند.
اولین عامل این است که روش ایجاد اپلیکیشن های اندروید و iOS متفاوت است. یکی از دلایل تفاوت ذکر شده این است که سالانه تعداد زیادی آیفون و آیپد جدید به بازار معرفی نمی شوند و آن چند مدل اغلب از سخت افزار مشابه استفاده می کنند.
این همگونی و شباهت بین تراشه ها و سخت افزارها به توسعه دهندگان این امکان را می دهد تا برنامه های خود را با زبان برنامه نویسی اپل (Swift و Objective-C) به روشی خاص یکپارچه کنند. علاوه بر این، کدهای نوشته شده برای برنامه های iOS مستقیماً در قالب دستوراتی کامپایل می شوند که پردازنده محصولات اپل برای درک آن ها نیازی به ترجمه ندارد.
از سوی دیگر، عملاً هر ساله دستگاههای نامحدودی با سیستم عامل اندروید منتشر میشوند که تراشههای روی هر یک از آنها میتوانند توسط کوالکام، سامسونگ یا مدیاتک ساخته شوند، بنابراین سازگاری تمامی اپلیکیشنها با انواع سختافزار غیرممکن تلقی میشود.
علاوه بر این، برنامههای اندروید از زبانهای برنامهنویسی Kotlin و Java استفاده میکنند که باید دو بار به زبان برنامهنویسی رابط (بایت کد) و سپس به زبان مادری تراشه ترجمه شوند تا پردازشگر آن را درک کند.
تفاوت های ذکر شده در کدنویسی دو سیستم عامل در نهایت منجر به این واقعیت می شود که دستگاه های اندرویدی برای اجرای برنامه ها به منابع حافظه بیشتری نیاز دارند.
عامل دوم این است که نحوه مدیریت رم در هر یک از این سیستم عامل ها نیز متفاوت است. اندروید از روش «جمعآوری زباله» برای مدیریت حافظه استفاده میکند و در طی این فرآیند به صورت دورهای مواردی را در حافظه پیدا کرده و حذف میکند تا فضای رم بیشتری آزاد شود.
از سوی دیگر، iOS از روش «شمارش خودکار مراجع» (ARC) استفاده می کند. این روش به طور خودکار یک مقدار عددی برای هر آیتم در RAM بر اساس تعداد آیتم های دیگر مرتبط با آنها ایجاد می کند و سپس آیتم هایی که مقدار عددی آنها به صفر می رسد را از چرخه پردازش حذف می کند.
با مقایسه این دو روش متوجه میشویم که از آنجایی که روش جمعآوری زباله فقط به صورت دورهای کار میکند، میتواند باعث جمع شدن اطلاعات بیهوده در رم و کاهش سرعت دستگاه شود. مشکلی که در روش ARC وجود ندارد، زیرا اطلاعات اضافی به محض یافتن حذف می شوند.
عامل سوم نیز به این واقعیت مربوط می شود که اندروید در زمینه پردازش برنامه های پس زمینه مانند iOS سختگیر نیست. به همین دلیل، برنامه های اندرویدی حتی اگر در حال استفاده نباشند ممکن است در رم شناور بمانند. به عبارت دیگر، انعطاف پذیری اندروید که یکی از نقاط قوت این پلتفرم است را می توان پاشنه آشیل این سیستم عامل دانست.
از این گذشته، با توجه به تمام توضیحاتی که داده شد، می توان گفت که اندروید و iOS به دلیل عملکرد متفاوت، رم متفاوتی دارند. اندروید به وضوح انعطافپذیرتر است، اما این انعطافپذیری میتواند به قیمت نیازهای RAM بالاتر تمام شود.