Apple's iOS 4, released only a few months ago roughly in concert with the iPhone 4, works not only on the iPhone 4, and the previous generation iPhone 3GS, but also on the iPhone 3G; the original iPhone can't run it. But to judge from vociferous complaints from iPhone 3G users online, Apple was perhaps overly optimistic in providing backward compatibility with the iPhone 3G.
If you have an iPhone 3G running Apple's older iPhone operating system - which was called iPhone OS 3, but has been retroactively renamed iOS 3 - I suggest that you not install the iOS 4 update. If you do, you'll likely notice slowdowns across the board, especially with opening apps, switching screens, and using the onscreen keyboard. Rumor fueled by an alleged email message from Steve Jobs suggests that Apple will address the problem in a future release of iOS 4, but as of version 4.0.2, using an iPhone 3G with iOS 4 remains painful for many people.
This is particularly troublesome because the iPhone 3G was for sale until the iPhone 4 shipped, and because it's non-trivial to downgrade to the previous iOS 3.1.3 version. When Apple has released versions of Mac OS X that turn out not to work well on older Macs, those Macs are often several years past their sell-by date, and, regardless, you can always revert to whatever version of Mac OS X shipped with that particular model. Besides, not only was the iPhone 3G so recently for sale, but it came with a 2-year contract, so users are locked into using it.
What follows are ideas for maximizing the speed of an iPhone 3G that's running iOS 4. I've tried all but the last idea personally. Restoring from recovery mode finally did help, but I think that restoring my backed-up apps and data caused me to lose most of the gain I'd achieved. However, I've read hundreds of comments online from frustrated iPhone 3G users, so I know that the several-second pauses that I was initially complaining about are not nearly as problematic as the 10-second pauses experienced by others, and those longer delays may be easier to reduce. I've listed the ideas in the order that I think would be most sensible to try them.
Do a Hard Reset Twice -- This action erases various caches and buffers, giving your iPhone a fresh start in some respects. To proceed, press both the Home button and the Sleep/Wake button for 5 to 10 seconds. Continue pressing them as the "slide to power off" slider appears (don't use it) and the iPhone powers off. Release the buttons. Now:
The iPhone may show an Apple logo and reboot.
The iPhone may remain off. Once it has been off for 15 seconds or so, press the Sleep/Wake button to turn it on.
Either way, rebooting may take several minutes.
After it reboots, the iPhone displays its usual Home screen. (If you aren't paying attention during a long reboot, you'll have a black screen, because the iPhone will have gone to sleep. In that case, press Home to activate the screen.)
You've now done a single hard reset, so repeat the procedure, which will ensure that the iPhone's internal caches and buffers are squeaky clean. (Or it may just be modern day voodoo.)
Shutter Spotlight -- Spotlight is the search engine behind the search options available on the leftmost page of the iPhone's Home screen. Since Spotlight is indexing the contents of your iPhone, turning it off may free up some system resources and improve performance.
To turn off the search options, tap Settings > General > Home Button > Spotlight Search. Then, on the Spotlight Search screen, tap any checked items to remove the checkmarks. Do a single hard reset to clear memory and start fresh.
Close Extra Pages in Safari -- These pages may be using valuable memory that could be better used elsewhere in the system. Open the Safari app, and notice the icon at the lower right of the screen. A badge on the icon indicates how many Web pages you have open in Safari (in the screenshot below, I have two open pages). Tap the icon to view a thumbnail of each page, floating on a scrollable screen. For each page except the last one remaining, tap the red X button to close it. Finally, perform a single hard reset to clear memory and start fresh. (If you use a Web browser other than Safari, trying this tip - or its nearest equivalent, such as closing extra tabs - in your browser seems like a good idea, too.)
If closing extra pages helps your iPhone's performance, you'll need to close extra pages every time you quit Safari, which is a pain, unless you use the information in the next tip.
Pay Attention to Memory Use -- You may find it useful to track how much memory is available on the iPhone using a memory-monitoring app, such as Gary Fung's free (oddly, on the iPhone itself, it's called Scan). If you check the app periodically, and especially whenever you notice performance lagging, you may be able to identify a usage pattern that causes problems.
For instance, a blog post about the topic from Andrews Technology, "," reported seeing better performance and more free memory after closing all pages in Safari, as recommended above.
Even better, Memory Sweep has two buttons, Free Memory Moderately and Free Maximum Memory. Tapping the first button seems to clear Safari's page cache (the page thumbnail images are blank on the next load), and whatever the second one does, it takes Safari even longer to start the next time. It strikes me that there could be cons to using these buttons, but Apple did approve the app!
Disable MMS -- Some folks have reported that turning off MMS (Multimedia Messaging Service) makes a huge difference. MMS is used in the Messages app, and where SMS (Short Message Service) messages contain just text, MMS messages can contain photos, audio, and video. To turn MMS off, tap Settings > Messages and tap the switch to turn off MMS Messaging. Finally, perform a single hard reset to clear memory and start fresh.
Restore from Recovery Mode -- This procedure has five steps. Make sure you have a few spare hours for this task and that you feel comfortable with all the directions before you begin.
Back up your iPhone's contents. Apple details this process in the Knowledgebase article "." You may not need to do everything in the article, depending on your situation.
Put your iPhone in recovery mode. While the iPhone is connected to your computer via USB and visible in the iTunes sidebar, hold down the Home button and the Sleep/Wake button for 10 seconds. Then release the Sleep/Wake button only. After a short pause, a dialog indicates that iTunes has detected an iPhone in recovery mode. Click OK.
Restore the iPhone. With the iPhone selected in the iTunes sidebar, click the Restore button on the right. Proceed with the restoration and be sure to click set up the phone as a new device, when asked.
Test to see if the iPhone is working better with a factory default installation of apps and settings.
If you like, restore your backup from Step 1. This may reintroduce the problem, and if it does, you can decide whether you'd prefer to live with the problem, or redo Steps 2 and 3 and then set the phone up from scratch while making frequent backups in case the problem occurs again.
Downgrade to iOS 3 -- If you have a few hours to spare, you may wish to revert to iOS 3. Proceed with care. Unfortunately, this process is not supported by Apple, although the worst that's likely to happen is that you'll have to reinstall iOS 4.
The directions I've seen for downgrading look fine for geeks but sketchy for regular people.. You might also want to read  at Macworld.
Wait Patiently -- Realistically, none of these are great solutions, and given that Apple officially offers iOS 4 for the iPhone 3G, the ball is in Apple's court. The company has remained mum about the issue, with the only break in the silence being an alleged four-word email message from Steve Jobs in response to a user's complaint: "Software update coming soon." Assuming that message is legitimate, whether that update is iOS 4.1, currently in testing, or something further out remains unknown.
But if the iPhone 3G performance problems aren't solved in the very near future, Apple should acknowledge the issue and provide official instructions for iPhone 3G owners to downgrade to the perfectly functional iOS 3.1.3 until the fix is available. Anything else shows a complete lack of regard for the user experience for iPhone 3G owners, something that a company as obsessed with details as Apple should be ashamed of.