[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] How is memory allocated in recursive XSLT templates?
Subject: Re: [xsl] How is memory allocated in recursive XSLT templates?
From: "Rashmi Rubdi" <rashmi.sub@xxxxxxxxx>
Date: Wed, 2 May 2007 19:03:44 -0400
|
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@xxxxxxxxxxxx> 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/
|