Products

Solutions

Resources

Partners

Community

About

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

The Community Blog is a personal opinion of community members and by no means the official standpoint of DNN Corp or DNN Platform. This is a place to express personal thoughts about DNNPlatform, the community and its ecosystem. Do you have useful information that you would like to share with the DNN Community in a featured article or blog? If so, please contact .

The use of the Community Blog is covered by our Community Blog Guidelines - please read before commenting or posting.


Before and After Speed Testing with a DNN 7.3 Upgrade

I have already written a blog on the page load speed improvements in DNN 7.3 – which was testing two installations of 7.2.2 and 7.3.0.

It was also time to update my own site (iFinity) which I still look after.   I hadn’t upgraded for a while, so it was still on 7.1.1.  It’s still running Url Master as well, rather than the Advanced Url Management code.  This is because I have a number of customizations that I haven’t managed to port to Url Extension Providers yet.  I recommend anyone still running Url Master look to upgrade to using the Advanced Url Management feature on DNN instead – that’s where all the improvements are being made.

As the focus of 7.3 was making your site run faster, I thought it would be a good idea to do some before-and-after testing of the page speed of a collection of the pages.  As this particular site started out as a DNN 3 site and has been upgraded over many years, it’s the kind of real-world, messy background DNN site that many people own and maintain.  

All About 7.3

Learn more about the 7.3 release by attending the What's New in 7.3? webinar on Tuesday, July 8, 9-10 am PST.  Register now for your place - these webinars are always popular!

Site and Test Configuration

The iFinity site currently runs on the Evoq in the Cloud platform, and uses an Azure  A1 WebRole to serve the content from the North Central US Azure region.  That’s 1.75 GB of RAM and 1 CPU Core located somewhere in the US Midwest.   It has been on DNN 7.1.1 for quite a while, and I normally pick key releases to upgrade to keep up to date.   I performed the tests from Australia using Chrome with the Chrome Web tools for measuring size and page download speed.   It’s quite a laggy connection from this location, and ping times were in the 400-700 ms range throughout most of the testing I performed.

I chose a sample of pages within the site and requested them 12 times, discarding the slowest time and averaging the rest.   Unfortunately I couldn’t run this test simultaneously because I needed to perform the upgrade in between – so there is the possibility of time-based network effects.  For the purposes of testing the basic hypothesis:

“Does a 7.3 Upgrade make my site run faster”

..then I think the test configuration is sufficient.   The real world is a messy affair of shifting ping times, flaky network connections and other random events.  

I also tested the page and content size of the pages – page size being the amount of bytes sent down to the browser to load the page, and content size being all the other resources loaded.  Reducing page size is key to increasing performance, and reducing the page size by eliminating unnecessary data (like Viewstate) was one of the ways this was achieved.

Upgrading to 7.3

After recording all my baseline figures, I then set about running the upgrade.   Upgrading DNN is one of those things where sometimes it runs smoothly and there are no problems, and other times there are issues you need to sort through.   That’s why you always should do a test first,if you can.  In my case, due to problems I am not going to go into, I didn’t have my staging environment in a position to run an upgrade test.  So I opted for the second option, which is to run a full database and file backup, and be prepared to restore fast.   Note that there is no other options you should ever consider (of course, when you test an upgrade you still need to do a full backup).    The first piece of advice you’re going to get in a situation where your upgrade didn’t work is that you need to restore to your backup.

This was one of those occasions when everything didn’t go as smoothly as I would have hoped.  One of the changes in 7.3 was a cleanup of the API.  This involved some changes to the data layer, which you (as a third-party developer) should never tap into.  However, there have been a few other isolated areas where older API methods were changed, and modules with minimum versions that stretch back a few years might find an old method is no longer there.   If you’re a developer you should read the 7.3 Developer Quick Start for more information.

The Url Master module is one such piece of code that maintains an old minimum-version, and the 7.3 release left the site broken because of this.  So after my ugprade, I was faced with a plain 500 error, which is always the last thing you want to see.  But it was an easy fix so I quickly made a new Url Master version just by updating to a newer method and swapped in the DLLs and my new 7.3 site was up and running. 

One of the changes for 7.3 is a new setting which allows the elimination of the portal.css file – the idea behind this change is to eliminate loading a portal.css for new sites.  Older, upgraded sites like mine require portal.css because of the styles in it (plus some customizations I have added).  So I first went into the Admin –> Site Settings page and checked the ‘Include Portal Stylesheet’ checkbox.

Above : The New ‘Include Portal Stylesheet’ checkbox – for most upgraded sites this will need to be checked.

This has caught a couple of early-upgraders out – in the future it will be automatically checked for upgraded sites.  For 7.3.0 – you’ve got to invest the 20 seconds and check it yourself.

Once I had patched the Url Master version and enabled the portal.css, I was ready to start kicking the tyres on the newly upgraded site. 

Note: If you also have Url Master installed on your site, take a quick read of this thread which relates to Url Master and DNN 7.3.   The short version is that you need to upgrade the Url Master version before you upgrade DNN to have a smooth ride.

Testing Pages

I selected 5 pages in the site to do my before and after testing.  These were the Home page, the Products/Url Master page, one of the Blog entries, the Support Forums page and the Admin->Site Settings page.  This is a collection of pages which are either POHMP* (Plain old Html Module Pages) or pages with content modules on them (Forums and Blog) and an Administrative page.  The normal page browsing was done as an anonymous user (not logged in) while the Admin page was obviously performed while logged in.

* I just made that up

I chose these because the improvements for 7.3 were Scenario based – and browsing pages was one of the key scenarios, as was loading Admin pages – with all their extra controls and UI interaction. 

Test Results

“Average Page Load Speed Improvement : 25% increase in page load speed”

In my ‘empty new site’ testing I had recorded results around this number, so it was encouraging to see those types of results repeated in a real-world, upgraded-since-v3 test.  Here are the details:

In these 4 pages, the average improvement was actually around 15% – I was expecting more.  But a key contributor to increased page speed in 7.3 is the new 51 Degrees device detection component – and I had already disabled the previous version as it was slowing things down and consuming memory.  So the gain wasn’t as high as it might have been had I already not disabled that provider.  Note that there is now a simple way to do this in 7.3, prior methods were fraught with danger.  But with the speed of the new component, you shouldn’t really have to disable it.

I separated out the Blog Entry and Site Settings pages into a different graph, because the higher page load time squashed the y-axis and made the other pages harder to understand:

As you can see the page load time for the Blog Entry fell significantly (42% improvement), and there were significant gains for the Site Settings page as well (37%).  Sometimes when you’re shaving half a second off a page, it can be hard to tell.  But when you chop 7 full seconds off the page load time, you can really notice that.

Turning to the Page Speed, we see similar improvements:

“Average Page Size Improvement : 43% reduction in page size”

Again, this was shared between the ‘regular’ pages and the Site Settings page, which I broke out into a separate graph.

The ‘regular’ pages were generally 25% smaller than they were previously – much of this will be down to the reduction in page size due to eliminating unnecessary viewstate. 

The Site Settings page has a large reduction in size for several reasons – reduction in viewstate, new file/folder pickers which lazy load data, and a range of other improvements.  This type of improvement is never noticed by the regular visitors of a site, but it does make a difference to a site administrator – with page sizes down by half and page speeds up by a third – it essentially means an Administrator can increase their productivity by a significant margin. 

 

Conclusion

The hypothesis I set out to test here was this : does upgrading to 7.3 make your site faster?   The answer is an unqualified ‘Yes’.   It was definitely worth spending the time to do the upgrade.  I’m pleased with the results.

Side Note about Upgrades

As this post is about upgrading, I’ll share some advice for people who are upgrading their sites and find that something doesn’t work – the best place to look for help is in the DNN Community Forums or the Community Exchange. If you’re an Evoq customer, the DNN Support staff are the best place to go.  I’ve noticed a trend of people logging upgrade issues in the strangest of places, like the product reviews on Codeplex or other random locations.  This is not really a good idea because it makes it very hard for people to respond and help you to solve any issues you might have.   If you need help, head to where people are willing to help out.

Comments

Jay Mathis
Great post Bruce

However, although the speed difference is impressive, you gave me some pause with the raw numbers on some your page load times. 9.8 seconds to load a blog post? Yikes!

Google has started placing a premium on page load speed when it comes to search results and I've seen a statistic that says that 40% of visitors will abandon a website that takes more than 3 seconds to load.

http://blog.kissmetrics.com/loading-time/

What do you think is causing the long load time for those pages?
Jay Mathis Friday, June 13, 2014 1:15 PM (link)
Bruce Chapman
Jay - the measurement is for the total page to load. That page includes several external references including to Klout,Twitter and Stack overflow. These tend to drag the overall loading time out. The page still runs the old DNN Blog module which tends to be slow - the new one is much better. There is probably an opportunity to upgrade the blog module and do a before/after comparison.

I included this for a specific reason - to show that the choice of third-party modules has a far greater effect on the loading speed of the pages than anything in the DNN core. Performance gains are hard to eke out and very easy to lose if some poor performing code is placed onto the page.

You raise a good point, though, that page load performance is now an SEO factor and more important than ever.
Bruce Chapman Friday, June 13, 2014 7:35 PM (link)
Sebastian Leupold
Nice. For sites with many users, folders and pages there is still room for improvements, see http://dnnscript.codeplex.com.
Sebastian Leupold Saturday, June 14, 2014 10:42 AM (link)
Martijn Goedings
Great post. Can you shortly write what is not generated anymore cause the 50% reduction of pagesize?
Martijn Goedings Saturday, June 14, 2014 11:47 AM (link)
Sebastian Leupold
Martijn, DNN removed unnecessary ViewState (information about controls states, which is only needed, if it can be modified).
Sebastian Leupold Saturday, June 14, 2014 11:52 AM (link)
Bruce Chapman
Sebastian, the admin UI changes help a lot with regards to efficiency when there are a large amount of users and files.

Martjin - Sebastian is correct in that a lot of excess viewstate has been removed. In the admin pages a lot of the old drop downs that populated with file/folder/users now use lazy loading. These combined drop the page size and improve the download and rendering speed.
Bruce Chapman Saturday, June 14, 2014 7:35 PM (link)
Sebastian Leupold
Bruce, I was focusing on loading data, when a registered user logs in or views a page, not on Admin UI for pages and modules.
But I agree, it would be really great, if one of the UX designers from the community would step up and provide a really efficient UX for permissions with the new constraints (currently requiring extra clicks and load cycles for any role, you would like to grant permission).
Sebastian Leupold Saturday, June 14, 2014 8:05 PM (link)
mohammad azarbara
Bruce this is great article,
and Sebastian this is great sctipt
mohammad azarbara Sunday, June 15, 2014 9:39 AM (link)
Bruce Chapman
Thanks Mohammad I hope it is helpful.
Bruce Chapman Sunday, June 15, 2014 9:26 PM (link)
fabian leonardo perez bello
Hello,

I have my website as an application of Windows Azure but I would like to know how to increase loading speed of my website, because it is so slow in this moment and I don't know how to improve the speed. This is the url of my website: alfadev.azurewebsites.net I've been testing the loading time with this site http://tools.pingdom.com/fpt/ just in case someone want to try to see what's going on.

I would be very grateful if someone of you help me to solve this issue.

Thank you

Fabian P.

fabian leonardo perez bello Wednesday, November 26, 2014 10:10 AM (link)
Sebastian Leupold
Fabian, may I suggest posing your question in the Forums, where it is easier to reply to individual issues, thank you!
Sebastian Leupold Wednesday, November 26, 2014 12:21 PM (link)
Stephen Lim
For more performance optimization ideas, try installing Revindex Optimizer (free) that can improve DNN page load performance by up to 50%.

http://www.revindex.com/My-Account/My-Downloads


You can read up more about how ViewState affects your download and upload time:

http://www.revindex.com/Resources/Knowledge-Base/Revindex-Optimizer/view-state
Stephen Lim Friday, July 31, 2015 10:23 PM (link)

Comment Form

Only registered users may post comments.

NewsArchives


Aderson Oliveira (22)
Alec Whittington (11)
Alessandra Daniels (3)
Alex Shirley (10)
Andrew Hoefling (3)
Andrew Nurse (30)
Andy Tryba (1)
Anthony Glenwright (5)
Antonio Chagoury (28)
Ash Prasad (37)
Ben Schmidt (1)
Benjamin Hermann (25)
Benoit Sarton (9)
Beth Firebaugh (12)
Bill Walker (36)
Bob Kruger (5)
Bogdan Litescu (1)
Brian Dukes (2)
Brice Snow (1)
Bruce Chapman (20)
Bryan Andrews (1)
cathal connolly (55)
Charles Nurse (163)
Chris Hammond (213)
Chris Paterra (55)
Clint Patterson (108)
Cuong Dang (21)
Daniel Bartholomew (2)
Daniel Mettler (181)
Daniel Valadas (48)
Dave Buckner (2)
David Poindexter (12)
David Rodriguez (3)
Dennis Shiao (1)
Doug Howell (11)
Erik van Ballegoij (30)
Ernst Peter Tamminga (80)
Francisco Perez Andres (17)
Geoff Barlow (12)
George Alatrash (12)
Gifford Watkins (3)
Gilles Le Pigocher (3)
Ian Robinson (7)
Israel Martinez (17)
Jan Blomquist (2)
Jan Jonas (3)
Jaspreet Bhatia (1)
Jenni Merrifield (6)
Joe Brinkman (274)
John Mitchell (1)
Jon Henning (14)
Jonathan Sheely (4)
Jordan Coopersmith (1)
Joseph Craig (2)
Kan Ma (1)
Keivan Beigi (3)
Kelly Ford (4)
Ken Grierson (10)
Kevin Schreiner (6)
Leigh Pointer (31)
Lorraine Young (60)
Malik Khan (1)
Matt Rutledge (2)
Matthias Schlomann (16)
Mauricio Márquez (5)
Michael Doxsey (7)
Michael Tobisch (3)
Michael Washington (202)
Miguel Gatmaytan (3)
Mike Horton (19)
Mitchel Sellers (40)
Nathan Rover (3)
Navin V Nagiah (14)
Néstor Sánchez (31)
Nik Kalyani (14)
Oliver Hine (1)
Patricio F. Salinas (1)
Patrick Ryan (1)
Peter Donker (54)
Philip Beadle (135)
Philipp Becker (4)
Richard Dumas (22)
Robert J Collins (5)
Roger Selwyn (8)
Ruben Lopez (1)
Ryan Martinez (1)
Sacha Trauwaen (1)
Salar Golestanian (4)
Sanjay Mehrotra (9)
Scott McCulloch (1)
Scott Schlesier (11)
Scott Wilkinson (3)
Scott Willhite (97)
Sebastian Leupold (80)
Shaun Walker (237)
Shawn Mehaffie (17)
Stefan Cullmann (12)
Stefan Kamphuis (12)
Steve Fabian (31)
Steven Fisher (1)
Tony Henrich (3)
Torsten Weggen (3)
Tycho de Waard (4)
Vicenç Masanas (27)
Vincent Nguyen (3)
Vitaly Kozadayev (6)
Will Morgenweck (40)
Will Strohl (180)
William Severance (5)
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out