RE: [xsl] XSLT 1 vs. 2 stylesheet performance issues

Subject: RE: [xsl] XSLT 1 vs. 2 stylesheet performance issues
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 4 Aug 2008 18:58:14 +0100
> So here is the result of a time profile...  This shows a 40X 
> + time difference.

I have seen large differences before, though I think this one is much larger
than usual. However, I do normally advise people nowadays that even if they
are running 1.0 stylesheets, it's probably better to use Saxon 9.x rather
than 6.x.

Could you share the stylesheet and source document?

Michael Kay
Saxonica

> 
> $ time java -jar saxonb9-1-0-1j/saxon9.jar 
> -s:test002-meta-1_3.xml -xsl:ODMToClassConfig.xsl -o:out2.xml
> Warning: at xsl:stylesheet on line 11 column 68 of 
> ODMToClassConfig.xsl:
>  Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
> 
> real    0m2.189s
> user    0m1.954s
> sys     0m0.146s
> 
> #### Saxon 6 (XSLT 1.0) #####
> $ time java -jar saxon6-5-5/saxon.jar -o out1.xml 
> test002-meta-1_3.xml ODMToClassConfig.xsl
> 
> real    1m36.175s
> user    1m32.081s
> sys     0m1.888s
> 
> 
> Ilya
> 
> 
> On Wed, Jul 30, 2008 at 5:39 PM, Michael Kay 
> <mike@xxxxxxxxxxxx> wrote:
> >> I'm a bit stumped by the performance issues we're having.  
> We have an 
> >> xslt 1 compliant stylesheet that takes 10 minutes to run in xslt 1 
> >> processors (Saxon, Xalan, libxslt) and a few seconds in Saxon 9B.  
> >> I'm not sure what it can possibly be.
> >
> > Well, it's certainly not related to the fact that it's an XSLT 2.0 
> > processor. There is absolutely no intrinsic reasons why an XSLT 2.0 
> > processor should be faster at processing a 1.0 stylesheet 
> than a 1.0 
> > processor. It's more likely that development on most 1.0 processors 
> > came to a bit of a standstill about 5 years ago.
> >>
> >> The processor seems to take most of the time in starting the 
> >> transformation.  Using oxygen, the debugger says Starting 
> >> transformation and stays there for about 10 minutes before 
> >> transforming in a matter of seconds.
> >
> > Sounds to me as if you're short of memory. The startup 
> phase will be 
> > building the document tree in memory, and will thrash the 
> paging file 
> > if there isn't enough memory to hold it. Check the paging activity, 
> > allocate more memory if you can. How big is the source document?
> >
> > Though there aren't any significant changes in the TinyTree 
> structure 
> > between Saxon 6.x and 9.x that would account for such a difference 
> > during tree building. What is the -t output from Saxon 6.x 
> and from Saxon 9.x?
> >
> > Michael Kay
> > http://www.saxonica.com/

Current Thread