"David Tolpin" <dvd(_at_)davidashen(_dot_)net> wrote in message
news:200401161750(_dot_)i0GHotfD005765(_at_)adat(_dot_)davidashen(_dot_)net(_dot_)(_dot_)(_dot_)
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
What data? It is missing from your zip file.
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()?
Nothing -- did you test with MSXML4 ?
Dimitre Novatchev.
FXSL developer,
http://fxsl.sourceforge.net/ -- the home of FXSL
Resume: http://fxsl.sf.net/DNovatchev/Resume/Res.html
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list