iPhone vs. Android comparisons is a favorite past-time of tech nerds. But iPhone advocates lose almost every time the debate comes to comparing RAMs of Apple with any Android phone. Case in point the iPhone 7, which came with a 2 GB RAM when their competitor Google Pixel and Samsung S7 both had 4GB RAM. But there seems no difference at all when it comes to the speed and performance, despite the apparent “lower” specs on paper.
The reason behind this involves many factors ranging from Garbage collection, App Management to User Interface, and Hardware.
1. Garbage collection
Android involves garbage collection using Java based apps grows its memory until it’s collected, meaning it might be allocating more resources than what is necessary. This puts additional load on phones with restricted memories and requires heavy processing when the garbage collector runs to clean the heaps of data.
In contrast, iPhone does not use Garbage Collection, but rather employs Automatic Reference Counting. This is an innovative method of managing Objective-C objects on iOS which removes the explicit retain, release and auto-release messages.
As folks at tech notification elaborate,
“iPhone’s ARC does not handle reference cycles automatically. This means that as long as there are “strong” references to an object, it will not be deallocated. Strong cross-references can accordingly create deadlocks and memory leaks. It is up to the developer to break cycles by using weak references.”
2. User Interface
This is basically the reason why iOS UI seems to run so smoothly when compared to Android’s lagging ones. iOS UI renders in a separate thread and is given a real-time priority, whereas Android does this in the main thread with a normal priority. This means that background apps can take precedence over the processor resources, leading to a noticeable lag in the interface.
3. App management
There is a fundamental difference in app management between Android and iOS. Android allows developers to run multiple processes while iOS doesn’t allow this liberty and kills any process which it thinks it doesn’t need to be running.
This means while app developers have a lot of freedom on Android, they can also lead to huge memory leaks or resource-hogging processes, leading to higher RAM requirements.
Apple’s iOS is solely designed for their own hardware, and they are rigorously tested by Apple. Whereas Android doesn’t have this level of quality control since the software OS developers are usually unconnected from the hardware makers