[quote]Is your site bigger than CP ? Does it have more users than CP ? CP is written in ASP.NET, using server controls.[/quote] No, these intranet sites are no where near as big codeproject and they max out around 4000 concurrent connections. My original question wasn't legitimate as I didn't understand how JavaScript partial postback (AJAX) works but after reading some more and talking to others I now understand that JavaScript can query, parse, etc xml from a remote resource (usually generated by a script url) and the xml that's transferred to the browser is send as a result of the database logic in your query script. I'm at a loss here in determining why our sites are performing so poorly. As I stated before, I have reduced the scope of my stress testing to a single TreeView that's populated from a SQL Query and even with nothing but a treeview on the page I still get TTFB values of approx 6000ms and TTLB of 30000ms. If I replace the ASP.NET tree with a DHTML tree, I get a TTLB that's reduced by a few seconds but even that is unacceptably slow. So for a single page, regardless of the load (and I've tested up to 50 concurrent threads) it takes almost 6 seconds to send the first byte to the users browser and 30 more seconds to send the last byte. To this point I have enabled caching, reduced the page size, enabled http compression, disabled viewstate and session state, and ensured the pages are batch compiled. I suppose that last thing to do is to run some analysis on the SQL queries used to populate the treeView, perhaps they're the problem (but I'm using NHibernate as the data layer, which is supposed to already be optimized). Thanks guys, I'm going to continue this testing (I'm using the old Microsoft Web Application Stress Tool; is there a more modern, free stress testing tool?) and I'll update this thread if I get this page to respond in the way our business rules dictate (no longer than 3 seconds to TTFB and no longer than 6 seconds to TTLB). Thanks