xsl-list
[Top] [All Lists]

Re: problem: recursive templates slowing xalan processor down

2004-05-10 13:58:51
Hi Chris,

im having a peculiar problem, ive made a xsl stylesheet that uses a
recursive template. When i use xmlspy to perform the xsl
transformation on a sample xml file everything works fine, but when
i use a xalan processor (org.apache.xalan.xslt.Process) the
recursive template seems to freeze the processing. First I pass
about 15 nodes to the template wich then calls itself with one node
less. and so on. In the beginning it goes fast but after 3 recursive
calls everything slows down and finally looks like its frozen (in
fact i still get some output but only after very long times). Is it
possible that several recursive calls freeze the processor and how
come everything works with the xmlspy debugger??

I don't know which processor the XML Spy debugger uses, but it might
be that it rewrites (tail) recursive calls into a loop and thus deals
with the recursion more efficiently than Xalan.

Having said that, Xalan is normally pretty good at that kind of
optimisation. (Perhaps you're using an old version? Check which
version you're using with system-property('xsl:version').) Seeing a
slowdown after only three recursive calls sounds quite severe.

Can you show us your recursive template? Perhaps there are some
rewrites that could help speed it up...

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/