Subject: Re: [xsl] Using memory addressing to retrieve a value vice using a software string library to retrieve a value From: "David Carlisle d.p.carlisle@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 20 Nov 2015 12:43:18 -0000 |
On 20 November 2015 at 12:13, Costello, Roger L. costello@xxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > Hi Folks, > > I want to retrieve "west". > > Which of these is faster? > > ------------------- > Approach #1 > ------------------- > The <edge> element contains text: > > <edge>garden west door</edge> > > "west" is retrieved using this XPath: > > substring-before(substring-after(., ' '), ' ') > > Note: assume that <edge> is the context node. > > ------------------- > Approach #2 > ------------------- > The <edge> element contains markup: > > <edge> > <garden/> > <west/> > <door/> > </edge> > > "west" is retrieved using this XPath: > > *[2]/name() > > > I believe that Approach #2 is much, much faster. Do you agree? > > As I see it, Approach #2 is simply a memory addressing task (which computers do very well) to obtain <west/> and then output the symbols at that memory address. Approach #1, on the other hand, requires the use of software string libraries, which, I imagine, results in hundreds or thousands of machine instructions. In fact, I would imagine that Approach #2 is hundreds or thousands of times faster than Approach #1. Do you agree? > > /Roger In addition to what Mike said, <edge>garden west door</edge> is two nodes (an element and text) <edge> <garden/> <west/> <door/> </edge> is four or eight nodes (depending on whether you have white space text nodes or not) so it depends a lot on your internal object model, but the second one might be a lot bigger. If you run out of memory then speed isn't really the issue. But the second form could take less memory than the first if the element names are repeated often and some kind of name pool is used for element names but not text content. Nothing really that you can say in general. David
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Using memory addressing t, Michael Kay mike@xxx | Thread | Re: [xsl] Using memory addressing t, Dimitre Novatchev dn |
Re: [xsl] Using memory addressing t, Michael Kay mike@xxx | Date | Re: [xsl] Using memory addressing t, Dimitre Novatchev dn |
Month |