RE: [xsl] why exsl:node-set() is so slow

Subject: RE: [xsl] why exsl:node-set() is so slow
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Fri, 16 Jan 2004 20:22:05 -0000
I'm certainly a little surprised by this result. The transformations are
fairly simple, so I guess that if it's taking 150 seconds then the data
files must be quite large, which is presumably why they are not
included? I expect it boils down to a memory issue: temporary trees,
with most implementations, are going to be held in memory, while final
result trees are not.


Michael Kay

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> David Tolpin
> Sent: 16 January 2004 17:51
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] why exsl:node-set() is so slow
> 
> 
> Hi,
> 
> I wrote a chain of 4 stylesheets; the chain takes an XML file 
> an produces another one through 4 transformations. It is 
> reasonaly fast, with an XSLT processor invoked from the 
> command-line for each step (a shell script aids in it).
> 
> Recently, I discovered exsl:node-set(), the function that 
> takes the result of one transformation and converts it to a 
> node set, so that the transformations can be chained within 
> one invocation of the transformation engine, not stepwise.
> 
> I have gladly re-implemented the chain with use 
> exsl:node-set() in hope that time spent on the slow start-up 
> of Java Machine will be saved. However, all XSLT engines I 
> have tested  have given me considerable lower performance 
> than with four invocation, 3 to 5 times slower. What's wrong 
> with exsl:node-set()?
> 
> SAXON, for example, takes 150 seconds instead of apprx 50 to 
> process the same data with calls to exsl:node-set() instead 
> of command-line invocations of the same processor for each of 
> the four steps. jd.xslt is even slower.
> 
> The only notorious exception is xsltrpoc. It is much faster 
> with exsl:node-set() than without. The only drawback is that 
> xsltproc produces absolutely wrong and unusable result when 
> exsl:node-set() is employed.
> 
> What's wrong with exsl:node-set()? 
> 
> David Tolpin
> PS: the stylesheets are at 
> http://ftp.davidashen.net/incelim/rng-incelim-> 1.0.zip
> 
>  
> XSL-List info and archive:  
> http://www.mulberrytech.com/xsl/xsl-list
> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread