Apple's iPhone 4: Thoroughly Reviewedby Brian Klug & Anand Lal Shimpi on June 30, 2010 4:06 AM EST
When the 4 was announced, my curiosity (and perhaps yours as well?) was about the flavor of Apple’s A4 SoC inside the phone. The rumor was that the A4 in the iPhone 4 had a full 512MB of memory, compared to 256MB in the iPad’s A4. iFixit took an iPhone 4 apart (with relative ease I might add) and confirmed the presence of 512MB. Look at the A4 in this picture, the Samsung part number on the right edge of the chip starts out K4X4G. The K4X denotes a Samsung mobile DRAM and the 4G refers to its density: 4Gbit or 512MB.
More memory should mean a smoother multitasking experience on the iPhone 4. Remember that iOS 4 keeps all fast task switching enabled apps resident in memory even after you’ve switched away from them. They are only kicked out of memory if you run low or if you force quit them. With more memory you should be able to keep more apps in memory without unwillingly forcing them out. The 512MB of RAM should also give the OS more breathing room in lighter multitasking scenarios, a problem many are already seeing on the iPhone 3GS running iOS 4. In practice the 4 is smoother when running iOS 4. There are still some hiccups but not as bad as on the 3GS, and definitely not as bad as on the 3G. The OS was clearly designed with the iPhone 4 as the performance target.
The big question that remains is what clock speed the iPhone 4’s A4 is running at. The assumption was 1GHz however Apple was very careful not to mention clock speed, unlike at the iPad launch. Saying nothing usually means there’s nothing good to say.
I ran a whole bunch of benchmarks on the iPhone 4 and the iPhone 3GS running iOS 4 to try and figure out what CPU speed we might be dealing with. The early reviews imply that the A4 in the iPhone 4 is running at a speed greater than the 3GS’s 600MHz, but slower than the iPad’s 1GHz. Let’s try and find out what it’s really running at.
The iPhone 4 manages a time that’s 25% faster. Note that this test is just as much about the software stack as it is about CPU/platform performance. The Froyo update makes the Nexus One ridiculously fast in this benchmark. It just shows you how much room there is to improve performance on these Android handsets. The next leapfrog is going to be once the entire Android world moves to 2.2.
BrowserMark spits out an overall score but with no indication of what the score actually means. In this case we’re looking at 18.4% better performance than the iPhone 3GS. The iPad is 34% faster than the 4, which supports the theory of the A4 running at ~750MHz in the new iPhone.
There's also the possibility that the A4 CPU clock varies depending on load and other factors but the run to run consistency in all of our tests seems to indicate otherwise. We also can't ignore the fact that the iPad and iPhone now run vastly different OS revisions. In some cases iOS 4 actually takes a step back in performance compared to iOS 3.2. That undoubtedly makes the iPad vs. iPhone 4 comparison about much more than CPU performance.
To measure web browsing performance I downloaded a bunch of different web pages and saved as much of them as possible locally on a server. I used WiFi on all of the devices to connect to my local server and timed average load time. I repeated the test at least 3 times and threw out any unusually high or low numbers. Performance was from a clean restart with no additional programs running in memory.
Note that these numbers aren't comparable to other reviews as we've updated software versions on two of the phones. The iPhone 3GS is now running iOS 4 which resulted in some numbers going up while others went down. And the Google Nexus One is running the officially released build of Android 2.2, codenamed Froyo.
What these tests should show is the overall performance of the platform when all network bottlenecks are removed. Obviously hiding in a tunnel under a lead umbrella will make any phone slow, but we’re looking at peak performance here.
The first test is the new AnandTech front page. Here we’ve got tons of images and HTML, meaning we’re stressing both bandwidth and code parsing speed.
The iPhone 4 is no faster than the 3GS (actually slightly slower, but we'll chalk that up to timing variance) here. The Froyo update to the Nexus One makes it lightning quick, almost as fast as the iPad in our first test.
Next up we have the first page of our recent Zotac XBOX HD-ID11 review. The balance shifts from tons of images to more HTML processing:
Here we see more of what I expected: the iPhone 4 is around 25% faster than the 3GS running iOS 4. Android 2.2 running on the Nexus One is basically as fast as the 4.
Using our Print this Review function, this next test loads our entire 2010 15-inch Macbook Pro review. While the other two tests had some flash ad content, this one is completely devoid of it so the HTC phones shouldn’t be penalized:
Here the iPhone 4 is 11% faster than the 3GS and about the speed of the iPad. There are other bottlenecks at play here so we don't get further performance scaling. The Froyo update helps the Nexus One a bit but the iOS devices are still quicker.
Our most intensive test is up next with a load of the Engadget front page:
The Nexus One is ahead of the 4 once more with its Froyo update. And the iPhone 4 is 34% faster than the 3GS.
Our most CPU bound test is up next. I put together a custom page with a ton of tabular content and a single page copy of our 15-inch MBP review to make the load take some time at least.
Surprisingly enough there's no difference between the 3GS and the 4 here, perhaps my test is less CPU bound than I thought. Froyo improves the Nexus One's performance a little bit.
Low Level Synthetic Tests
If we assume that we’re mostly CPU bound in all of these cases (a fair assumption given how fast Atom can run through all of these tests), then we’d be looking at a ~750MHz clock speed for the iPhone 4’s A4 assuming no other architectural changes. That’s actually a pretty big assumption. The A4 is widely believed to be a 45nm SoC using an ARM Cortex A8. At 45nm there should be room for a larger L2 cache than what was used in the iPhone 3GS’s SoC.
Perhaps some more synthetic tests will help us figure out what’s going on. I turned to Geekbench, now available in an iOS version.
Geekbench spit out a number of overall results that gave me a good enough summary of what’s going on to make an educated guess:
The CPU specific tests all indicate the iPhone 4 is around 25% faster than the iPhone 3GS. That would imply at least a 750MHz clock speed if all else is the same. Assuming we don’t get perfect CPU scaling with all of these tests, I’d venture a guess that 800MHz is more accurate. If the A4 does indeed have larger caches however, Apple could get away with a lower clock speed.
The memory results are particularly telling as they all scale very well going to the iPhone 4, better than the CPU results in fact. This could lend credibility to the theory of larger internal caches or perhaps to an improved (faster) memory subsystem.
Unfortunately until we get the iPad on iOS 4 we can't get a better idea of CPU scaling. I'm not even sure how reliable that will be at this point. If Apple was willing to change the amount of memory the A4 package housed between the iPad and iPhone 4, who is to say that it wouldn't have a slightly different design for the iPhone 4 (e.g. larger caches). The designs may not be physically different but we may instead be looking at binning. Given Apple's unwillingness to talk about the architecture here I think the safest bet is that we're looking at an 800MHz ARM Cortex A8 core in the iPhone 4 and a 1GHz core in the iPad.
Why the lower clock? It's all about battery life.