This post was imported from FARMCode.org which has been discontinued. These posts now exist here as an archive. They may contain broken links and images.
This is part 2 in a series of Umbraco 4.1 benchmarks created by various members of the core team in the lead up to launch. See Part 1 here on request/response peformance in the Umbraco back office.

This benchmark report looks at the data layer improvements in 4.1 by comparing query counts in 4.1 to 4.0.3. Not only has the data layer improved but there’s been significant improvements in the consumption of the data layer API made by many of the 4.1 pages and controls.

The stats below are represented as a percentage of the total calls of 4.0.3 where the number of queries in 4.0.3 are 100% and the number of queries in 4.1 are a percentage in relation to this. These results are based on the procedures listed at the bottom of this post and on averages run over 3 separate trials.

Step 4.0.3 4.1.0
Login 100% 68%
Expand all Content nodes 100% 23%
Edit Home node 100% 49%
Publishing Home node 100% 55%
Edit About Umbraco node 100% 49%
Go to Settings App 100% 100%
Expand Document types tree 100% 100%
Edit Home document type 100% 61%
Save Home document type 100% 67%
Go to Media app 100% 50%
Create new folder labeled ‘Test’ 100% 88%
Create new image under new ‘Test’ folder labeled ‘test1’ 100% 64%
Upload new image file to ‘test1’ and save the node 100% 49%
Go to Content app (and in the case of 4.0.3, expand the tree and select the About Umbraco node since in 4.1 this will already be selected and loaded) 100% 41%
Edit Home node 100% 43%
Add ‘test1’ image to the ‘Text’ WYSIWYG property with the image picker and Publish node 100% 49%
Average of averages above   60%
Complete run through of the above steps 100% 66%

 

So based on averages, Umbraco 4.1 is looking to have around 40% less queries made than 4.0.3!!! Thats HUGE!

The following steps were taken on each trial of the above steps:

  • New instances of both 4.0.3 and 4.1
  • Install CWS package on both instances
  • Log out of both instances
  • Bump web.config for both instances (clear out all data cache)
  • Use SQL Profiler to determine query counts for each step listed above

Also, SQL debugging has been added to 4.1 for MS SQL instances. If you compile the source in Debug mode you can get the SQL command output by adding a trace listener to your web.config. Underneath the configuration node you can add this xml block:

<system.diagnostics>
	<trace autoflush="true">
	  <listeners>
		<add name="SqlListener" 
			type="System.Diagnostics.TextWriterTraceListener" 
			initializeData="trace.log" />
	  </listeners>
	</trace>
</system.diagnostics>

This will create a trace.log file in the root of your web app SQL debugging.