Subject: Re: [xsl] Here's how to benchmark your XSLT program's execution time From: "Eliot Kimber ekimber@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 6 Nov 2014 16:37:27 -0000 |
In my test I followed the xsl:variable instruction by an immediate xsl:message with a reference to the variable to ensure it was evaluated right then. Cheers, E. bbbbb Eliot Kimber, Owner Contrext, LLC http://contrext.com On 11/6/14, 8:49 AM, "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: >If this is working, then it's only by chance. > >Order of evaluation is undefined in XSLT, and there is no guarantee that >$start is evaluated before the apply-templates call is evaluated. > >I think this only works in Saxon because the optimizer treats calls on >extension functions as suspicious, and tries to avoid over-optimizing >them because of potential side-effects. > >Michael Kay >Saxonica >mike@xxxxxxxxxxxx >+44 (0) 118 946 5893 > > > > >On 6 Nov 2014, at 10:20, Costello, Roger L. costello@xxxxxxxxx ><xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > >> Hi Folks, >> >> So, you've got an XSLT program that is taking a long time to execute. >>You want to find out what part of the program is taking so much time. >>You need to insert some start/stop timers into your XSLT. Here's how to >>do it: >> >> <?xml version="1.0" encoding="UTF-8"?> >> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >> xmlns:date="java:java.util.Date" >> version="2.0"> >> >> <xsl:output method="text" /> >> <xsl:output name="text-format" method="text"/> >> >> <xsl:template match="/"> >> <!-- Start a timer --> >> <xsl:variable name="start" select="date:getTime(date:new())" /> >> >> <!-- Do your XSLT processing --> >> <xsl:apply-templates /> >> >> <!-- End the timer --> >> <xsl:variable name="end" select="date:getTime(date:new())" /> >> >> <!-- Log the benchmarking results to a file, time-info.txt --> >> <xsl:result-document href="time-info.txt" format="text-format"> >> start: <xsl:value-of select="$start" /> >> end: <xsl:value-of select="$end" /> >> diff: <xsl:value-of select="$end - $start" /> >> </xsl:result-document> >> >> </xsl:template> >> >> <xsl:template match="*"> >> <!-- Do something --> >> <xsl:text>Hello World </xsl:text> >> <xsl:value-of select="current-dateTime()" /> >> </xsl:template> >> >> </xsl:stylesheet>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Here's how to benchmark y, Michael Kay mike@xxx | Thread | Re: [xsl] Here's how to benchmark y, Wolfgang Laun wolfga |
Re: [xsl] Here's how to benchmark y, Wolfgang Laun wolfga | Date | Re: [xsl] Here's how to benchmark y, Eliot Kimber ekimber |
Month |