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(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of
David Tolpin
Sent: 16 January 2004 17:51
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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