The first and easiest thing to do is enable caching on all your modules that you can.
The next thing is optimize your website with a fast loading CSS based skin.
Use this site to see where/what you can optimize: http://www.websiteoptimization.com/services/analyze/
Enabling compression is a quick and easy next step.
And if you don't have a lot of traffic, then setup a service that will load a page on your site every 15 minutes so that the ASP.Net worker process doesn't unload your website.
I use http://www.host-tracker.com that not only calls a page on the site, but will also notify you when it is down (Free e-mail notification).
For the other question about what I did specifically.
I have my own NavMenu that is CSS driven and I made it cache an instance of the HTML that displays the menu on each tab so that it would not have to be built dynamically on each call. So no, it is not a core change, but it is a replacement of the core navigation.
I'll get the code and post it, we might be able to cache the Solpart menu in the same way, but there is still a heavy hit for the size of the JS in such a robust DHTML menu.