Comparing Url Rewriting performance with DotNetNuke and Url Master with no .aspx extensions
May
21
Written by:
Friday, May 21, 2010 5:13 PM
A question that I field on a regular basis is ‘what performance implications are there for switching off page extensions on my DotNetNuke site?’. If you peek around various posts and blogs, you’ll see dire warnings from people predicting the end of your server as you know it. The main problem people have is that, when you switch off page extensions, all of the processing for all requests on the server are routed through the ASP.NET runtime, which has to serve up not only the dynamic ASP.NET pages, but all of the static content (js files, jpg files, css files et al) as well.
My response to people has always been : switch it on and see what happens, if your site becomes too slow then turn it back off again. My advice tends to be of a practical nature in this respect. My own site has been running without extensions for years, and while it is known to have the occasional hiccup, that’s never been to do with the missing .aspx on the Urls.
However, I decided to do a little bit of comparison with a standard DNN site and one with the Url Master module installed, so I could point to some empirical data when asked this question, plus give others a jumping off point to doing their own research. As a side benefit it would give me a baseline performance comparison between the latest Url Master and standard DNN Friendly Url Provider.
Performance Criteria
Before starting, I decided the criteria I would measure across to compare. These would be tracked over the test run and compared with each scenario.
- Memory Usage – looking for average and peak memory usage
- Open threads – looking for peaks in open threads
- Time to first byte – measures how quickly the application can send back the request
- Time to last byte – measures how quickly the application finishes the request
- Requests per second – measures the rate at which the web server is handling requests
Scenarios
- Plain DNN 5.4 Installation
- Plain DNN 5.4 Installation with Url Master
- Plain DNN 5.4 Installation with Url Master and no page extensions
Testing Platform
The testing was done on a DotNetNuke 5.4.2 installation, with the standard skin. The installation contains 3 portals and 98 tabs across the 3 portals. The Installation was standard apart from the Blog and Forum modules installed, and the Url Master module where tested.
The requests were collected using Microsoft Fiddler, and was equivalent to a click on each page of the first portal, which results in approximately 162 requests to the server, across all style sheets, images, css files and actual DotNetNuke pages.
The tests were submitted to the Microsoft WCAT tool (Web Capacity Analysis Tool) using the WCAT Fiddler Extension. These were done on a Windows 7 development machine running IIS7 in integrated pipeline mode. WCAT was configured to act as 10 concurrent clients submitting the stored requests continually for 30 seconds.
The testing configuration was designed to test a short burst of concurrent requests on the server, not to test the absolute limits of the application or the hardware. Probably 95% of all the DotNetNuke sites I have seen fall into the type of performance envelope I’m using. The main principle here was testing relative changes – when swapping out the standard DNN Friendly Url Provider/ Url Rewriter, what is the change in performance?
Each scenario was tested with 6 test runs, including one where the IIS service was restarted before starting, and one where the Application Pool was recycled before starting. This gave coverage of different scenarios and was designed to show the difference between cold starts and hot running situations.
The data were obtained using a combination of both the WCAT metrics, and using the Windows Performance Monitor, which provided information on memory usage and open threads.

The above picture shows the performance counters during a test run.
Testing Results
If I were putting a ‘media talking point’ out for this article, it would be : ‘Url Master outperforms standard DotNetNuke Rewriter’. However, in reality the testing was probably too limited in scope to come up with such a headline. The tests did show that the Url Master module had both better response times and throughput than the standard DotNetNuke Url Rewriter, and was comparable in memory usage.
The main purpose of the testing, however, was to test whether or not the switch to ‘wildcard mapping’ or, in other words, removing the .aspx from the Urls has any measurable performance effect. Remember, the main issue that most people have with the routing of all requests through the ASP.NET runtime is that it will result in slower performance than serving those files through the ‘Native’ IIS static file handler.
The surprising result for me was that the ‘no page extension’ scenario actually processed requests faster than when the .aspx extension was mapped to the asp.net runtime. This is probably due to the fact that IIS7 in integrated pipeline manages this situation very well, and the extra speed can just be put down to random differences in the samples. A more safe statement would be that no discernible effect could be found.
Requests per Second
Requests per second measures the amount of requests the web server is handling, and is a measure of throughput of the server.

As you can see from the data, the Url Master module changes the amount of requests per second that the installation can handle. In this graph, a larger value is better. This is likely due to the level of caching used in the design. The Url Master module caches both the index of pages for Url Rewriting purposes, and it also caches the list of Urls used when generating Urls for the output Html of a DNN page. Thus most of the usage of the module works from in-memory caches, and restricts the amount of calls to the database.
Average time to first byte
The Average time to first byte metric shows the responsiveness of the web application to requests. It measures the time taken before the request is submitted to the server, to when the request is received. Note that this testing took place on the same server as the web application, so there is no network latency involved. What we are measuring is the time taken to process the page and respond to the request.

This metric shows that the Url Master improves the response time of the DotNetNuke application in the tests run. Again, my guess is that the way the module rewrites the rules is faster than the standard DotNetNuke Friendly Url Provider, again probably because of the caching.
Full Data Set
Below is the full dataset of the results of the tests run. You can peruse the information and see where the differences show up.
| Test Setup | Memory Usage (bytes) | | | Avg Open Threads | Requests / second | Time to first byte | milliseconds | |
| | avg | min | max | | | avg | max | 50% |
| Standard DNN | 28,288,562 | 17,888,920 | 42,168,896 | 59 | 217.07 | 479 | 4524 | 31 |
| | 32,381,297 | 19,449,704 | 54,097,768 | 60 | 218 | 473 | 4540 | 16 |
| | 31,793,653 | 20,735,960 | 62,305,244 | 61 | 427.33 | 245 | 4586 | 0 |
| | 32,134,567 | 19,666,056 | 47,637,008 | 62 | 217.63 | 475 | 4665 | 16 |
| iisreset | 18,380,881 | 6,780,652 | 37,184,816 | 40 | 446.5 | 237 | 4602 | 15 |
| new wp | 29,902,197 | 7,066,944 | 105,284,592 | 36.8 | 490.87 | 188 | 5288 | 15 |
| | 28,813,526 | 15,264,706 | 58,113,054 | 53 | 336.23 | 349.50 | 4700.83 | 15.50 |
| kilobytes | 28,138 | 14,907 | 56,751 | | | | | |
| | | | | | | | | |
| Url Master | 26,611,569 | 9,997,464 | 49,498,544 | 56.14 | 542.23 | 183 | 3588 | 0 |
| | 21,787,730 | 8,263,072 | 69,673,616 | 39 | 314.97 | 331 | 3557 | 16 |
| | 23,112,331 | 13,014,831 | 59,858,528 | 39 | 474.47 | 218 | 2965 | 0 |
| | 24,019,964 | 12,914,032 | 60,035,168 | 40 | 400.7 | 259 | 3464 | 0 |
| iisreset | 43,609,843 | 7,542,158 | 133,115,904 | 37.492 | 422.67 | 222 | 4290 | 15 |
| new wp | 37,905,787 | 13,054,040 | 96,584,112 | 34.98 | 553.33 | 168 | 4056 | 0 |
| | 29,507,871 | 10,797,600 | 78,127,645 | 41 | 451.40 | 230.17 | 3653.33 | 5.17 |
| kilobytes | 28,816 | 10,545 | 76,297 | | | | | |
| | | | | | | | | |
| Url Master / no .aspx | 24,679,225 | 18,365,184 | 38,196,888 | 51 | 380.13 | 271 | 2028 | 16 |
| | 31,766,699 | 17,076,128 | 99,749,916 | 43 | 449 | 224 | 4868 | 16 |
| | 31,366,464 | 21,458,184 | 53,405,976 | 44 | 450.13 | 229 | 2605 | 0 |
| | 3,202,372 | 18,625,760 | 69,994,176 | 44 | 482 | 215 | 3432 | 16 |
| iisreset | 26,119,487 | 5,265,854 | 69,994,176 | 40 | 486.97 | 180 | 4118 | 16 |
| new wp | 34,893,992 | 13,985,840 | 95,012,592 | 36 | 488 | 180 | 4212 | 16 |
| | 25,338,040 | 15,796,158 | 71,058,954 | 41 | 471.07 | 216.50 | 3543.83 | 13.33 |
| kilobytes | 24,744 | 15,426 | 69,394 | | | | | |
Conclusions
There are two main conclusions I found from this testing:
- In IIS7 integrated pipeline, running with no page extensions makes showed no measurable difference in performance
- The Url Master module showed better performance than the standard DotNetNuke Url Rewriter/Friendly Url Provider
These are interesting results for me, and I may expand this testing to cover different scenarios such as an IIS6 server, or to greatly increase the sample size of the requests (I’m sure a statistician would scoff at my sample size of 7). However, they are pleasing for me as I do spend a lot of time performance optimising code and figuring out ways to make it run faster, given that the Url Master code runs every single time a page is requested in DotNetNuke.
If you see an obvious error, or repeat this testing and find a different result, please let me know via the comments.
13 comment(s) so far...
Re: Comparing Url Rewriting performance with DotNetNuke and Url Master with no .aspx extensions
I tend to agree with the pragmatic approach to issues like this and set up things the way I'd like them to be and change course should something not go the way I planned. That said, these numbers are interesting and very encouraging. Nice post and keep up the great work!
By Ian Robinson on
Saturday, May 22, 2010 12:03 AM
|
Re: Comparing Url Rewriting performance with DotNetNuke and Url Master with no .aspx extensions
No surprise to me that Url Master out preforms the stock DNN URL rewriter. Your module is the first thing I install on all new sites that I build. Keep up the good work Bruce!
By Nathan Rover on
Saturday, May 22, 2010 1:03 AM
|
Re: Comparing Url Rewriting performance with DotNetNuke and Url Master with no .aspx extensions
This is easily one of my most favorite DNN blog posts of the year! Especially since I have become a loyal customer using URLMaster. :)
I would absolutely love to see two follow ups to this blog post. One for IIS6, and another for IIS7 in compatibility mode.
By Will Strohl on
Saturday, May 22, 2010 3:08 AM
|
Re: Comparing Url Rewriting performance with DotNetNuke and Url Master with no .aspx extensions
I've known this for a while now, URLMaster gives a much better performance than standard DNN URL rewriter with. Who in the world doesn't know that? :-)
Looking at performance logs from my own site, swapping out the .aspx with no extension (using URLMaster, IIS6, IIS7) does not cause performance drop except for one scenario... malicious users who know what they are doing can cause unnecessary capacity drop (which is addressable separately though) simply because all the requests whether right or wrong now go through aspnet_dll
By Subodh Shakya on
Saturday, May 22, 2010 3:30 AM
|
Re: Comparing Url Rewriting performance with DotNetNuke and Url Master with no .aspx extensions
Can we see performance for IIS 7 App Pool running classic mode?
By Scott Allender on
Saturday, May 22, 2010 5:08 AM
|
when will hosting companies make this a user-accessible setting?
My main annoyance when trying to set people on hosting plans up with extension-less urls is that the support personnel treat this as a special configuration and try to charge for it. From my own experience, I've had to talk the good people over at PowerDNN out of charging me $50, arguing that there's no way I'm paying $50 for a setting that takes 10 seconds to change. It would be nice if the hosting control panels exposed IIS mappings to the users...
By Andrew on
Wednesday, May 26, 2010 12:00 AM
|
Re: Comparing Url Rewriting performance with DotNetNuke and Url Master with no .aspx extensions
I would be interested in seeing DNNMasters URL rewriter solution added into the mix. I've used all 3 solutions and URL Master wins hands down. When I tried the DNNMasters solution my response times went through the roof and I ended up disengaging theirs. I love extensionless, no going back for me...
By JT on
Saturday, May 29, 2010 5:07 AM
|
Re: Comparing Url Rewriting performance with DotNetNuke and Url Master with no .aspx extensions
@Andrew : I agree, but at least PowerDNN agrees to change the setting. There are many hosting companies that refuse to change the setting on the basis that 'the server will suffer performance degradation for all sites' - which is a case of people clearly not understanding what the change involves.
@JT I don't have access to and have never looked at the DNNMasters product so I don't know what features or performance it has. I have had quite a few people switching to the Url Master module from it, so far all reports have been positive which is what matters to me.
By Bruce Chapman on
Saturday, May 29, 2010 8:02 AM
|
Re: Comparing Url Rewriting performance with DotNetNuke and Url Master with no .aspx extensions
I am using URL master on both IIS 6 and IIS 7.5 and I do not have any performance issue on either. The average loadtime for my www.fowara.com which uses URL Master and is in IIS 6 takes about .4s which is faster than 99% sites according to Google webmasters tool.
Keep up the good work.
By Tareq on
Thursday, June 03, 2010 3:27 AM
|
Re: Comparing Url Rewriting performance with DotNetNuke and Url Master with no .aspx extensions
My hosting provider is PowerDNN and they advised that I not disable extensions. They wrote "While technically possible, DNN uses aspx to function, and we advise against disabling extensions unless absolutely required." Can someone explain to me, technically, why they would advise against it? I would like to use no extensions, but want to ensure that making the decision to have them turn off extensions is the correct decision.
By Shaun on
Friday, June 04, 2010 11:22 AM
|
Re: Comparing Url Rewriting performance with DotNetNuke and Url Master with no .aspx extensions
@shaun : I'd just ask them what the specific issue is, and see whether that can be overcome. It could be a fear of the unknown, it could be a valid technical reason. I do know of several PowerDNN hosted DNN apps that don't use extensions, so it might be a matter of who you talk to. It's very common in the shared hosting industry to have a policy of not switching off extensions, which is why I use VPS hosting. With a shared host, they have to put sociability and reliability as priority number 1 so one badly written application doesn't endanger all others on the same host.
By Shaun on
Friday, June 04, 2010 1:09 PM
|
Re: Comparing Url Rewriting performance with DotNetNuke and Url Master with no .aspx extensions
@Tareq: Yes, your site is impressively fast! Who do you host with?
Out of interest, I ran YSlow on your site - there are some very simple changes you could make to boost your score from 72 to over 80 - for example - compressing/mergin and caching all that CSS and JS (PageBlaster does this with one setting)
By Rodney on
Tuesday, June 15, 2010 3:53 AM
|
can we redirect a specific type of requests to no .aspx extensions?
I would like end user to type mysite.com/toystory3 to go to a video link like this: mysite.com/content/linkclick.aspx/fileticket=******&tabid=333$mid=333322. The video link is a static url.
With DNN Firendly Url, you have to add .aspx extension to the short url.
Can the free Ifinity Friendly url provider do this? Or I have to buy the advanced version?
thanks,
By heguangm on
Thursday, August 26, 2010 11:36 PM
|