Andy Davies

Independent Web Performance Consultant

Increasing the TCP Initial Congestion Window on Windows 2008 Server R2

In November 2010, Ben Strong highlighted how Google and Microsoft were cheating on TCP Slow-Start by setting the initial congestion window higher than the RFC value.

Since then there’s been quite a few articles discussing the performance benefits of increasing the TCP initial congestion window (initcwnd). Most of the articles showed how to make the changes on Linux but there was no coverage on whether and how it could be increased on a Windows Server.

Testing How Slow Third Party Components Affect Your Page Load Times

Both Steve Souders and Joshua Bixby have highlighted the effect slow third party components can have on overall page load time.

Third party components have become common e.g. ads, links for bookmarking, sharing, widgets that pull in content from other sites etc, and the impact on our page load times depends on the quality of service they offer (both how the component is implemented and the reliability/speed of their service)

Steve and Joshua have highlighted approaches that can be used to decouple the components and reduce their impact on the performance of our pages but it’s early days and only some providers have implemented them (Sergey Chernyshev has a some thoughts too).

The challenge for web developers is understanding what the effect on page load times could be, when most of the time the providers’ networks remain reliable.

The Need for Speed... Why Slow Page Load Times Matter

About a week ago, I did a presentation at BarCamp Stroud on why page load times matter and things that can be done to improve them.

It was fun to present and share what I’d learnt on a topic I’d spent a lot of time investigating and implementing for a WebApp I run (got quite a few things still left to do)

Here’s the presentation for anyone who’s interested, and there will probably more as I’ve already made some notes on other things to cover.

.net and ISA Server - Reducing Bandwidth Consumption

Earlier this year I came across some problems with some .net resources not being cached by ISA Server (.net and ISA Server - a match made in hell?)

The problem in a nutshell is that by default ISA Server doesn’t cache URLs that have query parameters, and the method .net uses to serve static resources that are bundled in .dlls relies on query parameters.

When .net uses the Microsoft AJAX framework, script elements like the one below are inserted into the page

<script src="ScriptResource.axd?d=ki7GLYn2P5z-CEtE0SsvKYJhnTEkD13edwjg24cmxWe4aD03WzKyGXQD45nYCFy70&t=633178683580000000" type="text/javascript"></script>

After looking at some of the lastest developments in .net 4.0 I discovered that ScriptManager could be used to serve out static versions of the AJAX framework (even in versions of .net before 4.0).