Sunday, September 17, 2006

performance of .NET 2.0's XslCompiledTransform class

I've been researching the XslCompiledTransform class, available with Microsoft .NET 2.0. While the performance assertion for this class (in comparison to the COM component MSXML 4.0) is less than earth-shattering, I did want to perform some basic testing on Microsoft XML parsers.

For this testing, I used a large (1.15 MB) XML file and a structurally-complex, somewhat inefficiently-coded, XSLT stylesheet that generates a single HTML file as an output. I perform the same processing task using two processing methods: MSXML 4.0; and, the use of the XslCompiledTransform class. I performed all tests on the same workstation.

MSXML 4.0 / ASP.NET 1.1 application 1 minute, 5 seconds
XslCompiledTransform / ASP.NET 2.0 application 1 minute, 3 seconds

Because of the noted performance problems of the System.Xml classes in .NET 1.1, I did not include this processing option in the test. This is a very limited test, but it confirms that the use of XslCompiledTransform is at least a viable option for XSLT .NET applications that use MSXML 4 (or later). There are a number of discussions available online on this issue.