[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Sorting using helper structure, position(), xsl:key


Subject: Re: [xsl] Sorting using helper structure, position(), xsl:key
From: Michael Ludwig <mlu@xxxxxxxxxxxxx>
Date: Wed, 16 Apr 2008 13:07:01 +0200

Abel Braaksma schrieb:
Michael Ludwig wrote:
You must use a variable in this case, which, of course, is
unfortunate if the node-set to search is large.

I'd be surprised if you could find a single XSLT processor that actually makes a deep copy of the full tree. A simple test with several variables pointing to the root node of several large documents shows no increase in internal memory usage compared to using only one variable per document. In other words: use as many variables as you like.

I don't think we disagree. As far as I've understood, a variable in XSLT 1.0 is just a pointer as long as you use @select instead of element content. The former method never involves copying, the latter may well do so. So I tend to use the former approach wherever I can, and I do not think memory consumption is a concern here. It's just a named @select.

What I was referring to is the case of a large node-set, say, 300
nodes, which you have to repeatedly search, say, at each of 300
iterations. I've seen a significant speed-up using key('bla', @id)
versus $bla[@id = current()/@id], which is, I think, one of the reasons
why keys exist.

And also the reason I wrote "unfortunate" in the above quote.

Best regards,

Michael


Current Thread
Keywords