یکی از سوالهایی که در ذهن بسیاری از ما ممکن است وجود داشته باشد این است که چگونه iOS موجود بر روی آیفون میتواند با یک گیگابایت حافظه رم بسیار روان اجرا شود اما دستگاههای اندرویدی حداقل به ۲ یا ۳ گیگابایت رم نیاز دارند تا با لگ و تاخیر مواجه نشوند؟
به گفته یکی از کاربران Quora (وبسایتی که در آن میتوانید سوالات را مطرح کرده پاسخ دیگران را مشاهده کنید و نمونه ایرانی آن javab24 است)، این تفاوت به علت مبتنی بر جاوا بودن اپلیکیشنهای اندروید است.
با استفاده از جاوا، فرآیندی وجود دارد که زباله روبی (garbage collection) یا جمع آوری زباله (garbage collectors) خوانده میشود. زمانی که یک کاربر اندروید اپلیکیشنی را میبندد، فرآیند جمعآوری زباله شروع به بازیافت تمام حافظه میکند. مشکل اینجا است که فرآیند جمع آوری زباله به ۴ تا ۸ برابر حافظه بیشتر نسبت به زمانی که کارها میتوانند به شکل سریع انجام شود، نیاز پیدا میکند. اگر این مقدار از حافظه در دسترس نباشد، همه چیز با کاهش سرعت رو به رو میشود.
معمولا این فرآیند زمانی که سیستم از حافظه رم خالی زیادی برخوردار است به خوبی انجام میشود، اما همین که شروع به باز کردن چندین اپلیکیشن مختلف میکنید، همه چیز به هم ریخته میشود. در واقع در iOS که مبتنی بر Obj-C است فرایند خالی شدن حافظه رم به محض بسته شدن یک اپلیکیشن انجام میگیرد، اما در اندروید مبتنی بر جاوا عمل Garbage Collection در فواصل زمانی خاصی انجام میگیرد و به همین دلیل گاهی اوقات حافظه رم بیش از حد پر میشود.
iOS از این نوع فرآیند جمعآوری زباله استفاده نمیکند و از طرفی اپل این امکان را دارد تا سیستم عامل خود را مبتنی بر سختافزار ویژه محصولاتش بهینهسازی کند. در سوی دیگر اندروید باید سیستم عاملی عمومی را بسازد که هر تولیدکنندهای بتواند با سختافزارهای متنوع آن از آن روی محصولات خود استفاده کند. پس اپل میتواند با یک گیگابایت حافظه رم در آیفون سرعت عملکرد بالایی همچون گوشیهای اندرویدی با ۲ یا ۳ گیگابایت رم داشته باشد.