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 |
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.
> 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/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] How is memory allocated i, Michael Kay | Thread | Re: [xsl] How is memory allocated i, Rashmi Rubdi |
Re: [xsl] Enforcing element order, ms | Date | Re: [xsl] How is memory allocated i, Rashmi Rubdi |
Month |