For a while now, I have been (not so) quietly working away on performance testing on various codebases as well as Sitecore itself for varying clients and my own satisfaction.
You can find it here: https://github.com/cardinal252/Sitecore.Boost
What is it?
With the concepts behind some of this work, I decided to create an open source project to allow others to see what has been done and contribute their production tested performance patches for the Sitecore platform.
This project contains a test harness setup complete with jMeter tests & serialized content.
The test content when deployed renders ‘Hello World’ renderings varying by the following:
- Number of renderings – 10 to 25
- Output Caching – Cached on Item, Cached on Standard Values, Cached on Rendering Definition, Uncached
- Rendering type – Controller / View Renderings
- Model – With / without
By putting the Sitecore rendering engine under load and performing profiles (using your tool of choice), many areas of Sitecore have shown consistent traits that can benefit from optimisation to their code.
What kind of performance gains can it offer?
To give a clue of the level of performance gains these patches currently give over stock:
For a simple test – 20 dynamic ‘Hello World’ view renderings without a model (the simplest and lightest of the potential renderings on offer) ran over 3 test cycles on the same test rig, performing identical iisreset and warm up cycles, picking the best results of the 3.
Sitecore 8.1 saw a 59% increase in rendering performance.
Sitecore 8.2 saw a 46% increase in rendering performance
For those that are interested – under these test conditions Sitecore 8.1 (unpatched) was 46% quicker than 8.2 (unpatched) and 58% quicker (at the time of writing) when patched.
What versions can it help with
Some of these patches go back as far as the advent of MVC on Sitecore, some are post 7.5 (introduction of xDb). Some are even BRAND NEW (8.2 at the time of writing)
Where can I take advantage of this awesomeness?
The nuget feed details are available on the github home page. Due to the nature of the project, some of the patches must be compiled against specific versions of Sitecore, and therefore a single public nuget feed doesn’t really suit.
Ok, so what’s the catch
As with all things, nothing comes for free.. The price for this performance boost is you guys need to accept that this is the Fedora to Centos.. These patches have been in production and have been tested – you need to test them for your own client.. PLEASE feed back and accept that these patches are not Sitecore’s own code…. otherwise.. THAT’S IT!.
(PS: I would love for some of you to fork and contribute to my efforts, we all work hard on our codebases to make them performant, so making the platform performant should be a common goal too.)