گوشیهای قدرتمند اندرویدی رم بالایی دارند و مشاهده ظرفیتهای 12 گیگابایتی روی محصولاتی مانند پیکسل 6 پرو و گلکسی S22 اولترا چندان غیرمنتظره نیست. در سوی دیگر گوشیهای اپل معمولا از رمهای 6 یا 4 گیگابایتی استفاده میکنند با این حال همچنان دارای عملکردی مشابه یا بهتر نسبت به اندرویدیهای با رم بالا هستیم، اما علت این موضوع چیست؟
رم چیست؟
رم (RAM) مخفف عبارت random-access memory یا حافظه دسترسی تصادفی است و چندین گونه را شامل میشود اما رم مورد استفاده در گوشیهای هوشمند از نوع SDRAM است. رمها برخلاف فضای ذخیرهسازی غیر فرار که اطلاعات را به شکل بلندمدت ذخیره میکنند، تنها تا زمانی به حفظ اطلاعات میپردازند که انرژی دستگاه تامین شود.
به بیان دیگر رم را میتوان شکلی از «حافظه کاری» برای دستگاه قلمداد کرد. هنگامی که شما چند اپ یا چند محتوا داخل یک اپ را باز میکنید، گوشی شما نیز بخشی از رم موجود را به هر یک از این فرایندهای تازه اختصاص میدهد.
این روند تا جایی ادامه خواهد یافت که دیگر رمی برای استفاده باقی نمیماند و گوشی مجبور میشود یکی از موارد پردازشی را پایان دهد تا عملکرد دستگاه دچار مشکل نشود. طبیعتا هرچه رم بالاتر باشد، مشکل مذکور نیز کمتر پیش میآید.
چرا گوشیهای اندرویدی رم بیشتری نیاز دارند؟
اکنون که میدانیم رم چیست و چطور کار میکند، میتوانیم سر پرسش اولیهمان بازگردیم اما برای پاسخ دادن به آن باید گفت که امر مذکور یک دلیل صریح یا قطعی ندارد و بلکه عوامل متعددی در آن دخیل هستند.
نخستین عامل این است که روش ساخت اپلیکیشنهای اندروید و iOS متفاوت است. یکی از علل تفاوت مذکور این است که سالیانه آیفونها و آیپدهای جدید زیادی به بازار معرفی نمیشوند و همین مدلهای کمشمار هم اغلب اوقات از سختافزارهای مشابهی بهره میبرند.
این همگن بودن و مشابهت میان تراشهها و سختافزارها به توسعهدهندگان امکان میدهد تا اپهای آنها با استفاده از زبانبرنامهنویسی اپل (سوییفت و آبجکتیو-سی) به شکل ویژهای با سختافزارها یکپارچه باشند. همچنین کدهای نوشته شده برای اپهای iOS مستقیما به شکل دستوراتی گردآوری میشوند که پردازنده محصولات اپل برای درک آنها نیازی به هیچگونه ترجمه ندارد.
از سوی دیگر هر ساله دستگاههای عملا نامحدودی با سیستم عامل اندروید عرضه میشوند که تراشههای هر کدام ممکن است توسط کوالکام، سامسونگ یا مدیاتک ساخته شده باشند، بدین ترتیب سازگارسازی تمامی اپها با تمامی انواع سختافزار امری ناممکن به شمار میرود.
همچنین اپهای اندرویدی از زبان برنامهنویسی کاتلین و جاوا استفاده میکنند که پیش از درک شدن توسط پردازنده باید 2 بار به زبان کدنویسی واسط (بایتکد) و سپس به زبان بومی تراشه ترجمه شود.
تفاوتهای ذکر شده در نحوه کدنویسی 2 سیستم عامل، در نهایت به این حالت منتهی خواهد شد که دستگاههای اندرویدی جهت اجرای برنامهها نیازمند منابع بیشتری در زمینه حافظه هستند.
دومین عامل این است که نحوه مدیریت رم در هر یک از این سیستم عاملها نیز فرق میکند. اندروید برای مدیریت حافظه متد «جمعآوری زباله» را به کار گرفته و طی این فرایند به شکل دورهای، موارد موجود در حافظه که دیگر استفاده نمیشوند را پیدا و حذف میکند تا فضای رم بیشتری آزاد شود.
در طرف مقابل iOS از روش «شمارش خودکار مرجع» (ARC) بهره میبرد. این روش به شکل خودکار برای هر مورد موجود در رم یک ارزش عددی بر اساس تعدد دیگر موارد مرتبط به آنها ایجاد میکند و در ادامه مواردی که ارزش عددی آنها به صفر میرسد را از چرخه پردازش حذف میکند.
با مقایسه این دو متد میبینیم از آنجایی که روش جمعآوری زباله تنها به صورت دورهای عمل میکند، میتواند موجب انباشت اطلاعات غیر مفید در رم و کند شدن دستگاه شود؛ مشکلی که در متد ARC وجود ندارد زیرا اطلاعات اضافی به محض شناسایی حذف میشوند.
عامل سوم نیز به این مورد مرتبط است که اندروید در حوزه پردازش اپها در پسزمینه، مانند iOS سختگیری به خرج نمیدهد. به همین خاطر اپهای اندرویدی حتی در صورت استفاده نشدن هم ممکن است در رم شناور بمانند. به بیان دیگر انعطاف اندروید که یکی از نقاط قوت این پلتفرم است میتواند به عنوان پاشه آشیل این سیستم عامل هم تلقی شود.
در پایان با توجه به تمامی توضیحات ایراد شده میتوان گفت اندروید و iOS دارای رمهای متفاوتی هستند زیرا نحوه عملکرد متفاوتی دارند. اندروید مشخصا از انعطاف بیشتری برخوردار است اما این انعطاف میتواند به قیمت رم مورد نیاز بالاتر هم تمام شود.