Register to Comment

Sign In to Comment

Register to Comment

Sign In to Comment

The Need for Speed

Speed is something desired by us all. We like express checkout, fast service, quick fixes and – particularly when it comes to software – responsive products. While some like a leisurely drive, time to chat or slowly cooked food, nobody has ever requested that a website should load more slowly. Speed is especially important for a Web Content Management System (WCMS).

For
Evoq Content 7.3 – this was the focus of all efforts. The key focus driving all decisions for this release was ‘how can we make this software faster, in ways that both ordinary visitors and experienced Administrators and editors will benefit?’. It’s one thing to shave 20 milliseconds off a routine in code. It’s another thing to look at the common scenarios the people using the software encounter, and just make their experience better at a level that can get noticed.

Evoq Content has had some fantastic features added over the past few releases. There has been dramatic improvements in Digital Asset Management, in site Search, in URL Management and many other areas. In some ways this was like a new Orchestra assembled and recruited – plenty of raw talent but not quite playing in tune yet. With Evoq Content 7.3 we've tweaked and stretched, nipped and tucked, and it’s now noticeably faster. You might wonder if improved performance is really a feature – my experience in purchasing vehicles, internet connections and computing hardware tells me that performance is very much a feature. So let’s dig in and see what 7.3 has to offer.

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!

Testing the Improvements

It’s one thing to say it is faster – but we all like to see concrete improvements. It’s another thing to bring out test-lab results under optimum conditions – but nobody really has a website like that. Below are some results measuring improvements in the real-world scenarios that the DNN team worked to achieve.

Test Configuration

I configured up a new Evoq Content 7.3 installation on Microsoft Azure Websites, using a limited configuration, and located it in the East Asia Azure region, to ensure plenty of real-world messy network latency. Then I loaded on a few hundred users and uploaded 500 images to the root folder of the installation.

Further, I created 500 subfolders and placed 6 images in each, just to generate plenty of files and folders. For a benchmark to test against, I repeated the exact same setup with an Evoq Content 7.2.2 site. Results were measured using a variety of tools, including browser timing (to measure the completed page load time), browser tools to measure the size of a page, and load testing tools.

Some readers may question why no actual numbers are in these graphs. I have removed the y-axis units because the focus is on improvement, not on absolute numbers – which vary depending on the network connection, the hosting configuration – and many other factors. Every effort was made to produce the exact same configuration (Azure Website running in Basic mode) at the same time (to eliminate changes in network speed) with the same content (baseline and improved sites using the same content). The focus is on how much an Evoq Content site can be improved simply by upgrading to Evoq Content 7.3.

Page Load Speed Testing Results

Page Browsing Speed Improvements

The most common scenario in a website; a visitor creating a pageview by visiting a page. This was tested by iterating over a number of requests and averaging the result, discarding the highest outlier for each data set. The goal was to compare the same content on the same page so all we measured was the performance improvements as a result of the upgrade to 7.3.

Results : a 25% increase in page speed was recorded comparing the the Home, Contact Us and Products pages which are present in the default site template for both 7.2 and 7.3 versions.

How did we do it? We tuned the database, reduced page size, improved caching and code profiling to eliminate slow points. This ultimately means
faster page loads, which results in happier visitors and less resources required to serve the same number of pageviews.

Administration Page Speed Improvements

Site Administrators are often modifying the page settings of a page, or are in the site settings, tweaking some particular setting at the site level.

As an Administrator, I compared two pages for 7.2.2 and 7.3.0 each mimicking the same real-life scenario of changing page level settings and site level settings.

Results: a
66% improvement in page speed in this installation. While some of the same factors are at work as with the regular page browsing, the page and site settings were sensitive to the amount of content and data stored within a site, resulting in sites performing slower as they grew larger. The user experience changes implemented within 7.3 allow the site to perform at the same speed, no matter how much data is loaded into a site. This is achieved by ‘lazy loading’ content where possible – which means fetching small amounts of data to show on the page, and loading more data as the Administrator requests it. The improvement in responsiveness for Administrators is noticeable and delivers real productivity improvements. Lazy loading is now enabled for all types of data – including permissions, files, folders and users.

Page Size Testing Results

Page size in this context is the amount of bytes which are transmitted from the server running Evoq Content, to the visitor browsing the site. Page size is related to page speed – fewer bytes means faster transmission – but it isn’t necessarily the major driver of page speed. But page bytes are important, particularly in lower-speed networks, and reducing the size of the page is always a worthy goal.

Content Pages Page Size Improvements

In this test, two different pages from the standard Evoq Content website template were tested for the amount of bytes transmitted. The results show the two different pages, and the reduction in page size transmitted.

Results: The average reduction in the number of bytes transmitted for the tested pages was
27%. This translates into very real reductions in the amount of bandwidth sent down to site visitors as they browse the site. This has been achieved by simplification of html where possible, elimination of unnecessary code, and minimization of data being transmitted where it was not required (this data is known as ‘viewstate’).

Administration Page Size Improvements

In this test, the Page Settings and Site Settings pages were tested for the page size, and the reductions between 7.2.2 and 7.3.0 were calculated.

Results: An average of 73% fewer bytes were sent in the Site Settings and Page Settings pages when viewed by the Administrator. Much of the reduction here was from the already-mentioned changes in UI which loads less data – this is particularly noticeable when there are large libraries of files to read and display for settings pages. The results on the Administrative pages are realized twice, because the contents of the page are sent back (or ‘posted’) to the server when an update is made. With a large reduction in the data being transmitted backwards and forwards in the test cases, it’s clear that the improvements will have a good effect on performance and responsiveness.

YSlow Scores

YSlow is a
page analysis tool developed by Yahoo! which analyzes pages and applies rules according to rules for high performance website pages. Each page is then scored and graded depending on a variety of factors.

Results: Evoq Content 7.2.2 scored as a YSlow grade 'C'. Evoq Content 7.3.0 scores a YSlow grade of 'B' using the default site template (the 'Awesome Cycles' template). Of course it is possible for this grade to be improved - the options within Evoq Content to minimize and combine page scripts is not enabled by default. The benefits of improved page architecture is faster loading, more responsive pages.

Load Testing Comparison

Load testing is a tricky test to get right, and to produce reliable, repeatable results. It’s also sometimes difficult to translate the results into how this affects a real-world site. I wanted to test a scenario to discover when more hardware would need to be added to deliver the site at various traffic levels. This feeds into total cost of ownership (TCO) for a growing site.

To run this test, I used the online Load Impact tool, which uses cloud resources to spool up traffic. The test scaled up to simulate 250 concurrent users continuously requesting pages from the site over a 5 minute period. The same set of traffic URLs was sent to the two test sites, and the results collated. The key metric was to publish which version (7.2.2 or 7.3.0) could handle the most requests from the load tool within the test timeframe.

Results: There was a measured 69% increase in requests/second in the load test. In this test, higher is better as the 7.3.0 version is able to process more pages under load than the 7.2.2 version. This is a controlled ‘laboratory test’. The takeaway in this scenario is that your existing hardware will be able to process more visitors before reaching the limit with 7.3.0 as opposed to 7.2.2. Less computing resources needed, coupled with lower bandwidth requirements due to less data being transmitted results in a lower TCO for Evoq Content.

Other Changes in Evoq Content 7.3

While making sites perform better was the ultimate aim of this release, plenty of other work has been completed. Some of this relates to scalability and some relates to creating a more responsive User Experience. Some of the highlights are shown here:

‘Add Module’ Control Bar

A key area of improvement with lazy loading was in loading all the modules that are available for an administrator to add to a page. What we found was that – because Evoq Content is extensible – unsurprisingly our customers like to extend it with all types of Content modules – some purchased from the
DNN Store and some built by the customers themselves. All this extra extensible goodness made using the ‘Add Module’ experience unwieldy. There’s a couple of changes here to make things better.

You can now search for a module just by typing into the search box. The search works by partial matching in the Module name.

When you’ve found the one you want, you can use the ‘bookmark’ function (top left corner), which will add it to your ‘Common’ list.

Next time you go to add a module, it will load the ‘Common’ list of modules, which always includes the Html Pro module.

This gives a short list of modules which you use frequently, and you can just drag and drop them from there to the right place on the page.

Scrolling has been improved as well – the list of modules ‘lazy loads’ so you start seeing modules faster. You can even use the mouse scroll wheel to sort through the list, or just grab the list and drag it backwards and forwards. The conventionally-minded out there can still opt for the scroll bar.

Web Server Groups and Web Server Management

A common scenario with Evoq Content is that it is deployed in a Webfarm scenario, and often with a staging site taken as a copy. In this scenario, the production site database is copied back to the staging site – at which point all the Web Server records have the wrong data. Web Server Groups solves this problem by allowing association of server records with specific environments – allowing two environments to co-exist in a single database. This allows moving between environments without having to adjust the database.

A further enhancement for Web Server Management is the addition and removal of servers from a Web Farm. This ranges from the infrequent (racking a new server) to the frequent (dynamically scaling a site in a cloud environment). The new enhancement automatically enables and disables server records when the site is scaled in or out, removing the need to manually add/remove Web Server records as new servers are added or removed.

Scheduled Tasks

Evoq Content sites have scheduled tasks that run periodically when a site is running normally. These take care of housekeeping jobs and keep the installation running well, trimming log file sizes and keeping the search index current. Improvements have been made to make sure any pending scheduled tasks wait when an installation is restarted, and greater control over time schedules is now possible. In keeping with the improvements for Webfarms, management of scheduled tasks on Web servers is much improved.

Conclusion

There are a lot more small fixes, enhancements and features packed into the 7.3 release of Evoq Content. The DNN Team has been responding to enhancement requests, fixing bugs and fine-tuning new features added in 7.1 and 7.2 to make sure the entire software works as a harmonious whole. If you’re an existing Evoq Content customer you’ll definitely get great value in an upgrade – and new customers are sure to discover all the features in Evoq Content tick all the boxes they need.