Extreme Drupal Performance for Authenticated Sites
Cache is an often-used, non-code related fix to performance problems. No matter what kind of cache you use, though (query cache, app cache etc.) you do need a mechanism to repopulate cache once it is invalidated by the system. And you definitely do not want it to be an unfortunate flesh-and-blood user who hit the non-cached page first time, to trigger caching. You'd much rather have a cron do that.
Pretty simple - put a cron in place that hits your site every minute. Job well done.
Yeah, but what if your website is accessed only through authentication? You have to be able to allow cron pass through that, somehow. And here is how:
- Add a cron user to the system, with no privileges just authentication and page view ones. Let's name it - cron
- Enable "path" module and create a special alias for the home page (or page you need recached). Let's say: "node" -> "cronnode".
- Install "securesite" module and secure path "cronnode". This will allow cron to use HTTP Authentication for this path. You need a special path to not disrupt your flesh-n-blood users.
- Set up a cron like the following:
*/1 * * * * /usr/bin/wget -q -O /dev/null --user cron --password cpass http://example.com/cronnode
Enjoy
P.S. One more thing: every session opened is logged by both user and securesite modules, so if you mind filling-up your log (probably) with meaningless messages, you may want to do something about it in :
user_login_submit() in modules/user.module and securesite_init() in securesite/securesite.module

Overly complex
"*/1" in a crontab definition is the same as "*"
Correction accepted.
Correction accepted. Thank you! In my defense I can only say that - "explicit-ism" pays off, sometimes :)
I thought that Drupal didn't
I thought that Drupal didn't use cache for authenticated users?
Regardless what Drupal does
Regardless what Drupal does with the cache in each of its different caching levels, developers can use different caching strategies in their own modules and you can, also, use MySQL query cache, which does not depend on Drupal at all.
This blog post discusses how to automate re-population of invalidated cache, in general. What and when is cached in Drupal is indeed an interesting, yet different subject.