Subject: RE: How expensive is //?
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 8 Sep 2006 23:58:48 +0100
|
> 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/
|