This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: XPath perfomance in attributes or nodes?


Hi,

I have read of your discussion about performance of different ways to 
achieve the same result with xslt.

If you are interested in the treshold above which the use of a key() 
function would improve performance it is very helpful to check your 
transformation by means of a profiler.

We have developed such a tool and it is available for free on the web 
site http://www.xslprofiler.org

I hope this may be useful for you.

Cheers,

Hans.

Jonathan Perret wrote:

> I would like to ask the XSLT implementors on this list whether their
> processors build keys lazily (i.e. on the first use of the key() function),
> or does <xsl:key> have a cost even when the key is not used later ?
> When is the cost of building the index offset by the performance gain ?
> 
> For example, suppose the input is 10000 elements like so :
> 
> <doc>
> <elt att="1">
> </elt>
> <elt att="2">
> </elt>
> <elt att="3">
> </elt>
> ...
> </doc>
> 
> and there is an external parameter that gives the stylesheet
> an attribute value to look for. Which would be faster :
> 
> <xsl:key name="idx" match="elt" use="@att" />
> <xsl:param name="param" />
> 
> <xsl:template ...>
>     ...
>     <xsl:apply-templates select="key('idx',$param)" />
>     ...
> </xsl:template>
> 
> Or : 
> 
> <xsl:param name="param" />
> 
> <xsl:template ...>
>     ...
>     <xsl:apply-templates select="/doc/elt[@att=$param]" />
>     ...
> </xsl:template>
> 
> Assuming the <xsl:apply-templates> above is executed
> only once, it seems to me that the key-less version
> should perform a bit faster. But as I have never implemented
> an XSLT processor I would like to have the opinion of
> masters of the subject.
> 
> Cheers,
> --Jonathan
> 
> ----- Original Message ----- 
> From: "Peter Davis" <pdavis152@attbi.com>
> To: <xsl-list@lists.mulberrytech.com>
> Sent: Thursday, March 07, 2002 3:52 AM
> Subject: Re: [xsl] XPath perfomance in attributes or nodes?
> 
> 
> 
>><xsl:key name="project-uid" match="project" use="@uid"/>
>><!-- or use="uid" -->
>><xsl:template ...>
>>  <xsl:apply-templates select="key('project-uid',
>>     '{6A97F258-93A7-4C5E-B712-052130A5208C}')[1]"/>
>>  <!-- [1] is probably not necessary -->
>></xsl:template>
>>
>>will be much faster than either approach.
>>
>>
> 
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 
> 
> 



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]