مدتهاست کاربران آیفون با نیم نگاهی به حافظه رم بکار گرفته شده در گوشیهای اندرویدی، منتظر ارتقا سایز رم در نسخههای جدید این گوشیها هستند امری که حتی در iPhone 6 و iPhone 6 Plus نیز محقق نشد و این دو نیز هنوز از 1 گیگبایت رم بهره میبرند. در عمل اما آیفونها با وجود رم کمتر معمولا روانتر از اندرویدهای مجهز به رمهای بالا فعالیت میکنند. در ادامه به علت این ماجرا پرداختهایم.
حافظه رم در گوشیهای اندرویدی این روزها از مرز 2 گیگابایت نیز گذشته و مدلهای متفاوتی حتی با 3 گیگابایت رم ارائه میشوند از جمله این موارد میتوان به خانواده Z3 از سونی اشاره کرد. در مقابل حتی نسل آخر آیفون نیز همچنان از 1 گیگابات حافظه رم فراتر نرفته است اما چرا با وجود این رم به نسبت پایین، سرعت اجرای دستورات و برنامهها در iOS همچنان با افت چندانی روبرو نبوده است و در بسیاری از تستهای پردازشی و گرافیکی هنوز هر دو آیفون در صدر جدول در حال رقابت با بزرگان دنیای اندروید هستند؟
پاسخ به این سوال به اختلاف ساختاری مابین سیستمعامل iOS و اندروید در چگونگی هندل کردن برنامهها باز میگردد. در ابتدا باید به این نکته توجه کرد که تامین انرژی و در دسترس قرار دادن رم به خودی خود به انرژی نیاز دارد و طبیعتا هرچه سایز رم بزرگتر باشد انرژی مصرفی کلی دستگاه نیز بیشتر است و این همان دلیلی است که معمولا گوشیهای آیفون میتوانند دوام باتری نسبتا راضیکنندهای را با حجم باتری کمتر نسبت به مجموعه اندروید ارائه دهند.
در ساختار گوشیهای اندرویدی به دلیل استفاده از Java به دلیل فرایندی به نام جمعآوری زباله (Garbage Collection) همواره به رم بالاتری نیاز است در این فرایند حافظه بلافاصله پس از پایان استفاده اپلیکیشن از آن مجددا بازیافت (recycle) میشود این فرایند در دستگاههای مجهز به حجم زیادی از رم بهخوبی انجام میشود اما زمانی که با محدودیت رم از یک سمت روبرو باشید و از سوی دیگر تعداد برنامههای در حال اجرا زیاد باشد مشکلات اندروید آغاز میشود. طبق اندازهگیریهای انجام شده در صورتی که از 4 تا 8 برابر حافظه رم بیشتر برای انجام پروسه Garbage Collection در دسترس باشد مشکلی برای سیستم ایجاد نمیشود اما با کاهش این حافظه، عملکرد سیستم به شدت کاهش پیدا میکند. درست به همین علت است که اندروید برای کارکرد بهتر به 2 برابر رم بیشتر نسبت به آیفون احتیاج دارد.
این پروسه در iOS جایی ندارد و این سیستمعامل در حین کار تنها به همان میزان حافظه مورد نیاز برنامهها احتیاج دارد و با کمتر کردن رم در مصرف باتری نیز صرفهجویی میکند.