[xsl] Using memory addressing to retrieve a value vice using a software string library to retrieve a value

Subject: [xsl] Using memory addressing to retrieve a value vice using a software string library to retrieve a value
From: "Costello, Roger L. costello@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 20 Nov 2015 12:13:36 -0000
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

Current Thread