Bitcoin is very disk intense and that slows it down. It seems to flush data to disk often thus preventing proper caching. With the datadir on a RAMdisk it is much faster.
Is it possible to increase the db cache size (http://doc.gnu-darwin.org/am_conf/cachesize.html) or do something else to improve cache performance.
Of course it would be nice to keep the wallet and important data save but I would not mind the blockchain to be heavily cached.
edit: I'm asking mainly about Windows OS.