The Performance Thread

Thought I'd make a couple of comments about the site's performance. I'm unsure whether this site is hosted in its true, "live" location, so some of this could be moot. However, performance is always an important consideration for a site with a "proper" user-base (ie peeps actually doing stuff on the site), especially for scalability reasons. Here goes, anyway.

  • I seem get time-outs too often on page-loads. Lots of CSS and JS seems to hold up the loading of other important site elements, eg the visible images on the page. Dylan can't even see the site on his Macbook before it times out.
  • I used http://tools.pingdom.com/fpt/ to have a gander. It times out at 30 seconds trying to load JS and CSS. The sizes of different types of content seem weighted the wrong way completely - a 100k page (at time-out), of which 45k was CSS, 33k was JS! That leaves about 20k's worth of actual content, and Pingdom timed out before loading any images.
  • Some CSS files are served relatively quick (eg 3k in 2 secs for lightbox.css), but then calls to the remaining CSS files take a silly amount of time - 2k in 15s! This suggests that the web server can't handle multiple, simultaneous requests properly, and farts out when its being hit for a page with about 100 elements to load. 
  • Estimated total page size then could be around 160k - perhaps this should be reduced.
  • Is Drupal's cache on? Is there a minimum lifetime set? What about using the CSS aggregation/compression to reduce the number of CSS files included? See the Drupal admin -> configuration -> performance section. 
  • Content isn't being cached in my browser properly, well, at all. Could this be a web server issue? This results in terrible performance (especially for elements shown on all pages like the site header).
  • TinyMCE - bloated, slow and cumbersome. 

Unfortunately, we haven't yet given much thought to performance, though we have given some thought to when we will give some thought to it. If that made any sense. This is sort of a Phase 2B or Phase 3 issue. A couple notes though:

1. We *thought* this would be the final resting place. The site is hosted with Jumpline. However, it's a shared, virtual server infrastructure and the performance has been lacking. I've hosted some relatively busy sites on them before but this one seems to have some issues. I'm researching alternatives.
2. I've had time-outs before too, but never enough to keep the site from loading. I've played with the CSS aggregation before, but I've turned that off for testing. Caching is also turned off right now because it was interfering with a few major module rewrites. That will be turned back on.
3. Regarding CSS: it seems that a whole bunch of CSS and javascript is being loaded in inappropriate places - module specific CSS/javascript is being loaded where the module isn't. That needs to be investigate before turning aggregation back on. For instance, right now, on this page, I'm loading ALL of the Ubercart CSS... completely unnecessary.
4. A number of SQL calls - especially the most critical one - the front page ecothreads module, are in serious need of optimization.
5. We're looking for alternatives to TinyMCE. And again, I've been going back and forth on it. Is it really necessary?