Subject: Re: [xsl] How expensive is //? From: Steve <subsume@xxxxxxxxx> Date: Fri, 8 Sep 2006 19:24:10 -0400 |
No performance issues. Just idle curiosity. As you say, it doesn't really seem to make a measurable difference. Kind of funny I bring it up at all.
But suppose you have a hypothetical root Records with one Record and 100,000 children directly under it. I was wondering if doing Records/Record/child versus //child would make any difference.
> Is // (memory) equivalent to /Records/Record when there is > only one Records, and only one child Record? >
It depends entirely on your processor.
For Saxon: the first time you do //x on a given document (for a given x) it searches the whole document looking for elements named x. In the majority of cases, this will take longer than an explicit path expression such as /a/b/c/x. However, the list of x elements that it finds is saved as a kind of index, linked to the document node, so that the next time you do //x on the same document it already knows the answer: which is therefore cheaper than repeating the /a/b/c/x query. This also applies if the //x is part of a longer path expression.
But you seem to be suggesting that your document is tiny, in which case none of this makes any measurable difference. Do you actually have a performance problem, and if so what is it?
Michael Kay http://www.saxonica.com/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] How expensive is //?, Michael Kay | Thread | Re: [xsl] How expensive is //?, Mukul Gandhi |
RE: [xsl] Sum in conjunction with s, Michael Kay | Date | [xsl] [announce] An Afternoon of XM, Stylus Studio |
Month |