Setting the stage:

Today's XSLTC translets perform abysmally on the
'dbonerow' benchmark.
The XML document is a set of 10^4 records and the
stylesheet contains
one template designed to match (and process) one of
the records;
XSLT essentially performs a search by matching.

On my machine 10 iterations of 'dbonerow' take
Saxon/XT/Xalan approx. 20 sec
compared to 7 times longer for a translet. The time
loss is so huge that
XSLTC looses all gains from other tests and comes
last.

Towards a better tomorrow:

I have rewritten XSL as follows:

<xsl:template match="row[id = '0432']">
stuff
</xsl:template>

to

<xsl:template match="row">
  <xsl:if test="id = '0432'">
    stuff
  </xsl:if>
</xsl:template>

Now Saxon/XT/Xalan still need around 20 seconds
(although they too prefer
the second variant). A translet, however, takes only
0.5 second
(or even 68msec w/o printing output).  Used to be 7
times slower
-- now is 40 times faster. This is shocking!

with this rewrite the magic numbers in my environment
are:

XSLTC   780
XT      482
Saxon   304
XalanJ  207

Obviously, the compiler is doing something VERY WRONG
for this test
(and presumably for 'patterns', 'decoy', etc.)

So there is hope.

Fixing the problem will not be easy; not only I've
forgotten many
implementation details, but the code has changed since
I last worked on it
(not always to my liking :-( )

--Jacek

__________________________________________________
Do You Yahoo!?
Yahoo! Sports - Coverage of the 2002 Olympic Games
http://sports.yahoo.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to