While attending the K2 conference recently in Denver, I was shown an awesome new website add-on, to assist with performance and general web server through-put.
This is not actually an ASP.NET or SharePoint function or configuration, but a lower-level HTTP handler for Internet Information Services (IIS).
A bit tricky to explain – here’s what normally happens, when viewing an ASP.NET page, or SharePoint (just an ASP.NET page as it’s core) :
- Web browser requests page using URL
- The main file (ASPX, or HTML) is returned to browser – just a text file really
- The browser renders the page, and requests each file from the server as it needs it – such as JPG, CSS, JS, etc.
This is old, Old, OLD school HTTP/internet technology – and the basis of the “interweb”.
When HTML was first introduced (1993), it was primarily text only – the HTML file was the description, and the browser asked for each other piece as it needed it.
The down-side for this is that the web server (IIS) can have 10-20 or more requests/hits for a single page.
Enter – the Runtime Page Optimizer…
This intercepts the page response as it’s about to be thrown down to the browser, and bundles some pieces together, and updates the HTML being response’d.
… works by automatically parsing the HTML page just before it is sent to the client and combining similar resource files, reducing the number of requests to render a page.
This approach significantly improves the performance of the website, reducing the number of requests that a browser makes for a faster load time from the end users perspective.
The speed increase that your site might achieve is dependant upon many factors, but the average case is a 200-400% speed improvement.
We have however tested a number of sites that load 800% faster with the RPO turned on !
I was shown the RPO in operation, viewing within Firefox, with the Firebug feature showing the files being returned (essentially the number of requests).
From what I could see, instead of 6 images (JPG), there was an single (extra wide) image file with all six images looking like a gallery file. Slightly better file compression then – smaller combined file size – and one request only (for images).
This looks like a great web technology – simple, efficient – and easy to implement. The basic premise is that “IIS action is bad” – and how can this be minimized.
Bandwidth is not a problem these days – as it was when this was browser-server protocol was first conceived. So – pushing the “work” back to the simple need to gather all files – using only 4-5 hits – rather than 10-20 (or even MORE – for something like SharePoint – would be interesting to see).
And – the caching is an interesting one too – when another browser requests the same page, the “big file containing 6 images” is already ready to go.
My next comment was “this is awesome – hope you guys have got a PATENT for this ??!!!!?” The answer is YES – they have registered patents protecting themselves for this.
Can’t wait to try it out – the ALPHA has just landed, with a quick patch added to work better with AJAX-enabled sites – the whole partial postback/partial request is GREAT for users – but friggin’ annoying & tricky for coders/developers.
Installation is the next thing to try out – supposedly just need to :
- Copy the RPO DLL to the bin folder of the WebApp (or SharePoint)
- Update the web.config to include some settings
- Can update the optimizationLevel to tweak how the output is generated
Click below to view more – and sign up for the Alpha release. And don’t worry that they’re from New Zealand, it should still work… 🙂
There’s a video clip too – explaining more about how it works – to clarify anything I may have confused…