iPhone 3G and iOS 4: Benchmarking the 4.1 Update

benchmark_thumb

When iOS 4 was released, many iPhone 3G owners felt the pains associated with having a slower device due to an OS that was more processor intensive. Apple stated it would be looking into the performance issues associated with running iOS 4 on older 3G iPhones, and thankfully, at the latest media event, a solution was confirmed to be ready.

So has the recently released 4.1 update finally closed the door on the issue of iOS 4 running sluggishly on the iPhone 3G?

iOS 4.1 Update Tested

To test how the iOS 4.1 affected performance, I took a pair of iPhone 3Gs and ran them through a series of performance tests. I used GeekBench 2 ($1.99), Gauge Mathematical Tool ($1.99), BenchTest (99 cents), SunSpider (free) and V8 (free) to test the performance of each OS version on the 3G.

I started out with one iPhone 3G running 3.1.3, and the second running 4.0.2. I must admit that both 3Gs were dumbed down quite a bit, and were not being utilized as iPhones, but more like iPod touches. The iPhones used were purchased at the same time, shipped in the same shipment, and have very similar Serial, IMEI, Wi-Fi and Bluetooth numbers assigned to them. The following results are only a subset of the data collected, and focus on the data points that changed the most from version to version:

Results for iPhone 3G: 3.1.3 vs 4.0.2

It’s not what the primary results did say, it’s what they did not say. As I executed the tests side by side, I noticed that even when similar end results were returned by the benchmark tests, the UI of each iPhone would behave differently. The 3G running 3.1.3 would behave as expected, but the 3G running 4.0.2 did not. Progress bars wouldn’t update smoothly on 4.0.2, but would jump to 100 percent at the end of the test. As tests were executing, it was as if the user interface on 4.0.2 was somehow sporadically frozen during the tests. This behavior is consistent with other video reports online that iOS 4 is slow on 3G devices. It also explains why certain activities, namely games that don’t utilize Apple’s stock UI components, run pretty much the same on each OS version. If you now use your 3G primarily as a game device as I do, you may not have noticed all the differences in performance.

If, on the other hand, you’ve continued to use the device as a smart phone, you’ve most likely noticed the degradation in performance. What was surprising at first was that the JavaScript results were much faster on iOS 4. This makes some sense, since the version of Safari on iOS 4 most likely has the latest JavaScript engine under the hood. So while some UI elements may be slower, and most hardware-based benchmarks remained relatively constant, the JavaScript results actually improved from 3.1.3 to 4.0.2.

Results for iPhone 3G: The 4.1 Update

I then upgraded the 3G running iOS 4.0.2 to the new iOS 4.1. At this point, I had one iPhone 3G running iOS 3.1.3, and the other running iOS 4.1. This time around, the UI did appear to behave more as one would expect on 4.1, with smoother progress bars and a zippier response from the UI. It felt faster, but was it as fast as 3.1.3? No, not really.

While certain numbers did seem to bounce back, namely the performance of the  Stdlib Allocate test within the GeekBench test suite, most numbers remained the same as in 4.0.2. The BenchTest results for Drawing Into View and File to Filesystem did seem to bounce back a little as well. It was only the JavaScript results (as per the SunSpider test) that really seemed to improve even further. However, it’s important to note that the iPhone 3G (on both versions of the OS) never passed the V8 test. Safari always crashed before completing the test.

One More Test: iPhone 4 on 4.0.2 vs. 4.1

So before drawing any conclusions, I wanted to see if the subtle performance increases noticed between 4.0.2 and 4.1 on the 3G were the same performance increases noticed on the new iPhone 4. Finding the same performance increases on the iPhone 4 as compared to the iPhone 3G would point to an overall performance boost based on OS updates that weren’t specific to any one hardware platform. Luckily, I happen to have two iPhone 4s in the house as well. This time, I performed benchmarks on the exact same hardware before and after the upgrade. I was very surprised with the results of the performance tests on 4.0.2 compared to 4.1 on the iPhone 4.

Conclusions

It’s still very likely that Apple did focus on performance issues related to each one of its own internal apps that are distributed only via OS updates. Apart from the JavaScript benchmark results — which prove that Safari on iOS 4 outperforms Safari on iPhone OS 3 — the boost to overall performance based solely on the test results listed above is marginal.

These tests, however, are looking at the OS itself, not individual app performance improvements. Surprisingly, there does appear to be a platform-specific focus on performance issues related to the iPhone 3G, as performance does appear to have degraded on the iPhone 4 with the 4.1 update. I’d been focusing heavily on the iPhone 3G, and had run several iterations of tests comparing 3.1.3 to 4.0.2, and was prepared to collect the same amount of data following the 4.1 update on the iPhone 3G. I was much more meticulous with the details on executing the tests.

The tests against the iPhone 4 were an afterthought, and would require a more through examination before claiming that the iOS 4.1 update did indeed degrade the performance of the iPhone 4. Just as we struggled through the iPhone OS 3 updates on the iPhone 3G last year, there will likely be more updates to iOS 4 in the months to come. While I still don’t feel iOS 4.1 is back to the same performance levels of iPhone OS 3.1.3, there do appear to be performance gains in 4.1 that prove that Apple is serious about supporting the iPhone 3G on the iOS 4 platform.

Online BenchMark Results

loading

Comments have been disabled for this post