History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: CCNET-103
Type: Improvement Improvement
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Owen Rogers
Reporter: Anonymous
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
CruiseControl .NET

Use XPathDocument instead of XMLDocument when doing XSLT to significantly boost peformance.

Created: 09/Jun/04 07:06 AM   Updated: 13/Jun/04 09:05 AM
Component/s: Web App
Affects Version/s: 0.5, 0.5 (CCNetLive), 0.4.2, 0.6, 0.6.1
Fix Version/s: 0.7 RC-1

Original Estimate: 3 hours Remaining Estimate: 3 hours Time Spent: Unknown
Environment: 1.1 .net framework


 Description  « Hide
BuildLogTransformer.Transform(XmlDocument document, string xslFile) currently performs an XSLT on and XmlDocument. This significantly reduces performance. XPathDocument is the class to use when performing XSLT according to Microsoft. When using XSLT have preceding-sibling xpaths, performance is severly degraded. (See http://support.microsoft.com/default.aspx?scid=kb;en-us;325689). Also, XPathDocument will always have better performance for XSLT. I changed the code on my local setup to convert XMLDocuments to XPath documents and saw performance go from 15 minutes for a set of transformations to 30 seconds. This is when dealing with large xml files (4 mb).

In addition, XmlDocument should be changed to XPathDocument in LogFileLister.transform.

 All   Comments   Work Log   Change History      Sort Order:

Owen Rogers [13/Jun/04 09:05 AM]
thanks for the recommendation! as suggested, i've switched all uses of XmlDocument involved in xslt transformation to use XPathDocument
committed as part of ccnetlive build 0.6.1.274