Re: [xsl] Here's how to benchmark your XSLT program's execution time

Subject: Re: [xsl] Here's how to benchmark your XSLT program's execution time
From: "George Bina george@xxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 7 Nov 2014 05:57:21 -0000
Hi all,

oXygen provides a profiling UI around the information we gather by registering as a trace listener to the XSLT engine, showing hot spots
http://oxygenxml.com/doc/ug-editor/#topics/hotspots-view.html
and the invocation tree
http://oxygenxml.com/doc/ug-editor/#topics/invocation-tree-view.html


A short video on this (<5min) is available in our videos section:
http://oxygenxml.com/demo/XSLT_Profiling.html

Best Regards,
George
--
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com

On 06/11/14 17:16, Michael Kay mike@xxxxxxxxxxxx wrote:

Order of evaluation is undefined in XSLT, and there is no guarantee
that $start is evaluated before the apply-templates call is evaluated.

Yikes!


So how do I write the XSLT program so that it is guaranteed that $start will be evaluated before the apply-templates call is evaluated?

There is no guaranteed-portable way of doing this. Doing an xsl:message that references $start before the apply-templates call would increase your chances; but there's still no guarantee that $start won't be evaluated much earlier, e.g. at compile time.

A safer way to get timing information with Saxon is to use a TraceListener. This is what the Saxon profiler (command line option -TP) does.

Michael Kay
Saxonica

Current Thread