[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Simple problem - complicated solution - performanc

Subject: Re: Simple problem - complicated solution - performance
From: Mike Brown <mike@xxxxxxxx>
Date: Fri, 17 May 2002 03:01:32 -0600 (MDT)
simple problems call for......
Stuart Celarier wrote:
> Dimitre raises an interesting point about using recursion for computing
> the minimum and maximum values of a set of data. Let me throw this
> question back out to the list, especially to people with XSLT
> implementation experience: 
> 
> It seems like there must be some practical limits to recursion since
> that would involve a call stack in memory. Is it reasonable to think
> about recursion that stacks up a couple of thousand or tens of thousands
> of calls deep? Taking a page fault on a call stack seems like it could
> get very expensive very quickly.

I believe tail recursion is optimized like this:

If the recursive call is the final instruction in the template, you don't need
to put anything on the stack. The call can be in an xsl:if or xsl:choose/when, 
as long as there's nothing that needs to be done after it.

In other words, say you have this general structure (in pseudocode):

   myTemplate:
     take in some parameters
     add some stuff to the result tree
     if some condition is true, call myTemplate with new parameters

As long as you don't do anything else (like add some more stuff to the result
tree at the end), then with each invocation, it is safe to forget that your
template was called by a previous invocation; you'll never need to go back to
that previous one.

   - Mike
____________________________________________________________________________
  mike j. brown                   |  xml/xslt: http://skew.org/xml/
  denver/boulder, colorado, usa   |  resume: http://skew.org/~mike/resume/

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.