As a very unscientific test, I just logged on to my Facebook account and my Myspace account and noted the following about my home pages:
Myspace html size: 16.38kb count of external .js files: 10 count of external .css files: 4 render mode: quirks load time (time to reload, thus assuming most requests cached, average of 3): 3191ms Facebook html size: 5.35kb count of external .js files: 27 count of external .css files: 25 render mode: standards load time (time to reload, thus assuming most requests cached, average of 3): 3207ms
I was surprised the load times were so close. MySpace feels slower but that may be because pages frequently include external images and sound files.
I don't mean these comparisions to either trash or promote MySpace or Facebook; instead I think it's instructive to consider which benchmarks translate to the best user experience and what techniques contribute to the better set of numbers.
Myspace's server software and html was bad. So so bad.
Note that I am not saying that PHP > .NET -- obviously on sites of this large scale, as has already been noted in the post's comments, using any technology "out of the box" is looking for trouble. What I mean to imply, however, is that perhaps for sites this big, .NET is the wrong thing. And, as the parent comment points, out, IIS certainly isn't helping things, though I don't think Apache would necessarily be a magic bullet. Craigslist, which does many megabytes of data transfer per minute, is considering switching to Lighttpd because Apache too heavyweight.
P.S. Sorry about the links -- I couldn't figure out how to link a text string to a URL. Can someone enlighten me?
For example, we use apache with mod_mono and write our own custom controls.
asp.net out-of-the-box will not work for a massively concurrent public facing app. However, neither will php, rails, django, any of the java frameworks. "re-invent the wheel" might be an overstatement for what you need to do, but no matter what...you're going to do some serious tweaking since every app has different needs