I wrote code that cuts several seconds off the normal compile/upload time. Here's a little video I made yesterday to demonstrate.
This works much like Make, Ant and other build systems, by reusing the previously compiled files from the last time. I actually wrote this almost a year ago, but it was considered too risky to use in Arduino until more people have tested it and confirmed it really works. So the code sat unused and forgotten for almost a year!
Well, now that Arduino 1.0 is here (or will be in a few days), I'm hoping to revive this and hopefully get enough people to test so it can someday become part of Arduino.
Here's the page with the installer that adds it.
http://www.pjrc.com/teensy/td_download.html
If you're using a non-Teensy board, you'll also have to edit boards.txt. The line that enables it looks like this:
uno.build.dependency=true
You should notice a substantial speedup compiling the same sketch. Hopefully when you switch sketches, board types, or have multiple windows open at once... stale code from one should not be used again in another.
If you give this a try, working or not, please take a moment to comment on issue 638.
http://code.google.com/p/arduino/issues/detail?id=638
This feature has sat unused since November 2010, and it may never get much use beyond Teensy boards without your help!