Application Launches
On the iPhone 3G running 4.0.2, application launches were unbearably longer. This is what really tells the story about how much slower the iPhone 3G was on 4.0.x compared to 3.1.3, and what really contributes to the perception that 4.0 is slower. Playing around with a 3G running iOS 4, everything feels dog slow, but counting by seconds for things to launch is unacceptable anymore.
We’ll start out with the messaging app. For this test, I time from opening the application to when the compose message screen fully appears. With lots of messages, I’ve been on iPhone 3G devices that have literally made the messaging application launch time in the 10s of seconds, so any savings here is a dramatic improvement under those conditions.

Thankfully, iOS 4.1 brings messaging launch time nearly down to 3.1.3, but it isn’t quite there.
Next up is the camera. We noted in our original iOS 4.0 walkthrough that the camera application launches felt much speedier on a 3GS with 4.0 than 3.x. Here we see a similar story for the iPhone 3G.

Dramatic improvement over iOS 4.0.2, which previously took a whopping 5 seconds to get from tapping on camera to the capture live preview.
Next is maps. For this test, I time from tapping on the maps icon to when the entire preview of the United States has loaded.

iOS 4.1 again dramatically improves on 4.0.2 speeds, but can’t quite come close to 3.1.3 for whatever reason. I’m puzzled by this and ran and re-ran the tests, 3.1.3 is still faster at maps.
Up next is settings, again I time from tapping on settings to when the application is fully loaded.

Again a definite speedup from 4.0.2, but still not quite 3.1.3 speeds.
The phone application is one of a number of iOS applications that always run in the background. In theory, launching the phone and dialer should always be snappy, after a slower initial run. We test the initial run from tapping on the icon until the dialer pops up.

Speaking of Safari, how fast does it launch? Here we test launch from tapping on the icon to bringing up the default set of bookmarks. Remember that after bookmarks pops up you’re finally free to enter a URL.

Here we see another case of iOS nearly bringing 4.1 into parity with 3.1.3, though a whole 3 seconds is still a long time, but not nearly as long as the nearly 4 it used to take.
Weather is an interesting case - it’s a simple application that’s been around since the first iPhone without much change. iOS 4.1 doesn’t make much difference:

Here we tested from tapping on the icon to when the default Cupertino result fully loads. It’s clear there’s not much Apple could do to make this faster.
The App Store is an important application, as it often feels like the most sluggish default Apple program on iOS. We’re connected over extremely fast WiFi, so network throughput should be negligible. Here, we’ve initially installed an application and are coming back to the application detail page accessed through search, and time from tapping on app store to getting to that result.

Again we see that iOS 4.1 is better, but still not as fast as 3.1.3. Admittedly the App Store has added a few things since 3.1.3.
Overall Performance Comparison
How do things look if you total up all of these application launch times? Better than 4.0.2, but still not quite as fast as 3.1.3:

On the whole, application launches are an average of 15% slower on the iPhone 3G running iOS 4.1 than iOS 3.1.3, down from nearly 44% on iOS 4.0.1.
There's another general performance test that runs on virtually all iDevices called Geek Bench. I ran it on the same devices and got a similar order of scores:

There's not quite enough dynamic range to really see how much 4.1 improves from 4.0.2 unless you dive into individual scores that are composited into this average GeekBench Score, but it shows a similar story.
I'd launch Safari which would open just fine, but attempting to scroll down a page would cause the phone to freeze for up to 30 seconds before it would become responsive again. This behaviour was all over the phone - it would frequently pause and stutter all the time and rendered my phone nearly unusable.
I could have dealt strictly with an extra 2 seconds to open the Settings menu, if my phone wasn't constantly freezing and stuttering to the point that it would not allow me to answer an incoming call before the caller gave up and hang up!
Basically, I want to know if 4.1 will make my phone an unusable mess again, or should I stick with my 3.1.3 downgrade!