There is a lot of talk about DotNetNuke’s performance and the general perception in the community is that DotNetNuke 4.9.5 is still the champion. Well... No More!
I joined DotNetNuke Corporation last November and have been spending some of my time optimizing the performance characteristics of the DotNetNuke platform. I made some small tweaks here and there, but no major improvements were realized until I made a breakthrough with our upcoming release, DotNetNuke 5.5.0. I think I have finally hit the target that everyone was hoping for; that is, to have a release that has better performance characteristics than DotNetNuke 4.9.5.
As it turns out DotNetNuke 5.x wasn’t slower because of any of the new features we have added in recent releases. Don’t get me wrong, there have been many major changes and improvements in DotNetNuke 5.x and that is why we would love to see everyone upgrade and take advantage of them. However, none of these new features can be blamed for DotNetNuke 5.x performance. The main reason 5.x didn’t perform as well as its predecessor was because of a rather small configuration change. In DotNetNuke 5.x the “Friendly URL Provider” default mode switched from “Search Engine Friendly” to “Human Friendly”.
If you are not familiar with different type of friendly URLs, here are some examples.
This was a positive change for DotNetNuke 5.0 from a business perspective as the URLs generated by the platform look a lot nicer in human friendly format and offer SEO benefits. The problem was the original implementation of Human Friendly URLs introduced some extra overhead which caused DotNetNuke to take a performance hit. The overhead was related to the use of Regular Expressions and some non-optimal business logic.
For DotNetNuke 5.5.0, with help from Charles, I went ahead and rewrote how Human Friendly URLs are processed which brings us back to the main topic. DotNetNuke 5.5.0 with Human Friendly URLs enabled is over 20% faster that DotNetNuke 4.9.5, and over TWICE as fast as any previous 5.x release!
You might be wondering why the Friendly URL provider has such a drastic effect on performance. Well, the reason is that Friendly URLs need to be created for every instance of a link on the page. This includes all menu items, all page and module edit links, settings links, RSS and print links; which in totality adds up to a substantial amount of processing for this provider.
Hopefully this change will encourage users and customers to upgrade to DotNetNuke 5.5, so that they can take advantage of these significant optimizations. Please head over to CodePlex and download the latest 5.5 Beta and let us know what you think.