Are you using an Additional Web Server or running off your main NPM box?
Also, if you're on v10, you can choose to cache maps now. That helps a lot. We have a live Weather page background on our U.S. map, then state backgrounds on the submaps, and they're pretty snappy; 1-5 seconds.
Yea, there was a major performance hit going to 9.5 (i think) when they migrated the maps into the DB. It has gotten much better since then, but is still painful if you have a lot of objects nested in a lot of maps, basically all culminating onto one map....
For a while there, I created a page with 5 frames and pointed each frame to a view. each frame would load at different rates depending on how much junk was below so they would off-set eventually, but i had to hunt around to figure out how to remove the header bars, etc... pain in the butt.
it is still slower than I'd like to see it now, but we moved back to all on one page now.
We also load balance between 2 additional web servers and don't use the main server to serve web pages.
You may turn on displaying a cached map, while a new one is being loaded. This way, there is always a map displayed. Once the new map is created, it is displayed instead of the cached image.
To turn on map caching, click the Edit button on the Network Map resource and look for a checkbox on the edit page.