Bob,
Sorry for the delay. I actually had your post on one of my lists to definitely get back to today.
CachingApples to apples - I'm doing this on conservative 1.5 bps speed. What are you running with?
Worst case scenario, or is that worst worst worst? I can live with that. So there is the assumption that many of the folks who visit the internet have a lot of this stuff cached. What about those who don't? I read a stat the other day that around 50% of Americans over 12 are now on Facebook. Even though the other 50% aren't, will it still be cached?
We're on a Time Warner 8Mbs download connect, which of course never hits that. Regardless though, I haven't seen the page you're working with, so I haven't even tried to load it
For the worst case scenario I mentioned, that is the absolute worst case. Something like 90%+ of sites have Google Analytics installed. I'm guessing that at least 25% (likely more depending on your users preferences) will have Facebook's Javascript. If so, that means when the user visits your page, that will already be loaded. Heck, you can try your same test, with one change.. close browser, clear all caches, visit sourcecoast.com and then your page. We load FB and Google Javascript, so that the visit to your site won't have to. The caching is all if a user visits a site that loads the same libraries that your site does, regardless of whether the user uses Google or Facebook.
Compressors
Yup, compressors can wreak all sorts of havoc with Javascript and CSS files. It can take a while to get the right combination of exclusions, ordering, and other things. The benefits are generally worth it (in my opinion), but it can be a pain. Less requests is always good. And that scales exponentially... if you get hit with a lot of traffic, each user will request less, meaning your site has a better chance to keep up. On 'slow' sites, the difference is less dramatic as your server better be able to handle a few connections at a time.
Rsrc.php
This file is Facebook's remote source inclusion script. Basically, when a page loads, they call this script dynamically depending on any other scripts, images, or CSS they need to pull into the page. So, while it looks like it may be duplicates, each request is for different 'stuff'. The more widgets you load on the page, the more calls you'll get to that script. If you check our
home page
, you'll see that there are (I think) no calls to rsync because we don't have any Facebook widgets there (like, fanbox, etc). If you do it to the
JFBConnect home page
. So, removing extra widgets, or minimizing the features (no avatars, etc) of some of the widgets can help decrease the calls and extra inclusions that Facebook has to make. If you can post, or PM, the page you're working with, I may be able to help narrow down where the extra inclusions are coming from.
I'd really recommend disabling the JFBCContent and any modules/{JFBCxx} tags you have on your page to see if the rsrc.php inclusions go away. If so, add incrementally and see what makes them explode.
Debug
The .5s between afterDispatch and afterRender is indicative of plugins or modules bogging down PHP and taking a while to render. System - Cache can help (since the page doesn't have to re-render every time, or you can try disabling plugins/modules and see where you get speedups.. though, of course, at the risk of loosing functionality. The component on that page is only taking ~100ms to execute (onAfterRoute -> onAfterDispatch), so that's good.
PHP Version
You mention enabling PHP 3.1.5. You have some numbers transposed there, so I don't know what you're actually using. 5.3.x is definitely faster than 5.2, which was faster than 5.1 though. So, the higher, usually, the better.. though Joomla has some issues with PHP 5.4, just so you know.
Hope that explains a bunch of stuff. Best of luck,
Alex