xsl-list
[Top] [All Lists]

Re: [xsl] How is memory allocated in recursive XSLT templates?

2007-05-02 16:04:04
Michael, Abel,

Thank you again for your replies.

Sorry about the delay, it took me a while to try the XSL example and
also a Java example.
I was just trying these out as an academic exercise.

I couldn't calculate the timing precisely in Java because it varied
between each run.

For example Factorial(999) took 0 milliseconds in Java and then the
same Factorial(999) took 16 milliseconds. I put the start time and end
time just before and after the function call.

By using BigInteger in Java I could calculate the factorial of much
larger numbers, larger than Factorial(16) and the largest one was
Factorial(10446) took about 610 milliseconds.

After Factorial(10446) I got a StackOverflowError in Java. Of course
in the case of factorial I was using the normal recursion which relies
on Stacks.

I guess, no expects to work with such high numbers (probably NASA does
:-)  , the largest number shown by BigInteger takes 2 pages

-Regards
Rashmi.

On 5/2/07, Michael Kay <mike(_at_)saxonica(_dot_)com> wrote:
> It could be the memory space available to hold the longest
> number is limited, and not particularly the recursive depth.
> Although I could be wrong, because I know little.

Saxon uses Java's BigInteger. Arithmetic performance will become impossibly
slow long before you hit the size limits on a BigInteger.

Michael Kay
http://www.saxonica.com/

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>