Hi,

When I have a xsl:key who's select results in no nodes, I notice a
ridiculous increase in processing time.

Below is an example that runs in 4ms when the select returns nodes and
2400ms when no nodes are in the key.

If you run it with more nodes in the xml you'll get even slower
performance.

Thanks,

tim

 

 

Xml

<?xml version="1.0" encoding="utf-8"?>

 

<document>

<node id='1'/>

<node id='2'/>

<node id='3'/>

<node id='4'/>

<node id='5'/>

..etc etc

<node id='2000'/>

</document>

 

 

Xsl

 

<xsl:stylesheet version='1.0'

        xmlns:xsl='http://www.w3.org/1999/XSL/Transform'

> 

    <xsl:output method='text' version='1.0' encoding='utf-8'
indent='no'/>

<!--

        <xsl:key name="idKey" match="/document/[EMAIL PROTECTED]'-1']" use="@id"
/>

-->

        <xsl:key name="idKey" match="/document/[EMAIL PROTECTED]'2000']"
use="@id" />

 

 

        <xsl:template match="/">

                <xsl:value-of select="count(

                                                key('idKey',
/document/node/@id)

                                        )"

                />

        </xsl:template>

</xsl:stylesheet>

 

 

 

With

<xsl:key name="idKey" match="/document/[EMAIL PROTECTED]'-1']" use="@id" />

 

[EMAIL PROTECTED] xsltests]$ xsltproc -timing -profile test.xsl
test.xml.small

Parsing stylesheet test.xsl took 0 ms

Parsing document test.xml.small took 2 ms

number               match                name      mode  Calls Tot
100us Avg

 

    0                    /                                    1 244198
244198

 

                         Total                                1 244198

Applying stylesheet took 2443 ms

0Saving result took 0 ms

 

 

With

            <xsl:key name="idKey" match="/document/[EMAIL PROTECTED]'2000']"
use="@id" />

 

[EMAIL PROTECTED] xsltests]$ xsltproc -timing -profile test.xsl
test.xml.small

Parsing stylesheet test.xsl took 0 ms

Parsing document test.xml.small took 2 ms

number               match                name      mode  Calls Tot
100us Avg

 

    0                    /                                    1    346
346

 

                         Total                                1    346

Applying stylesheet took 4 ms

1Saving result took 0 ms

 

_______________________________________________
xslt mailing list, project page http://xmlsoft.org/XSLT/
[email protected]
http://mail.gnome.org/mailman/listinfo/xslt

Reply via email to