[jboss-svn-commits] JBL Code SVN: r31580 - labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Feb 11 15:09:34 EST 2010
Author: whitingjr
Date: 2010-02-11 15:09:33 -0500 (Thu, 11 Feb 2010)
New Revision: 31580
Modified:
labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl/agregate.xsl
labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl/analyseresults.xsl
labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl/average-results.xsl
labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl/merge-thread-results.xsl
Log:
Improved performance of stylesheets.
Modified: labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl/agregate.xsl
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl/agregate.xsl 2010-02-11 19:44:20 UTC (rev 31579)
+++ labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl/agregate.xsl 2010-02-11 20:09:33 UTC (rev 31580)
@@ -43,46 +43,49 @@
<xsl:element name="frame">
<xsl:attribute name="mn"><xsl:text>other</xsl:text> </xsl:attribute>
- <xsl:element name="methodDuration">
+ <xsl:attribute name="t">
+ <xsl:value-of select="$category0/frame/@t - ($categoryB/frame/@t + $categoryC/frame/@t + $categoryD/frame/@t)"/>
+ </xsl:attribute>
+ <!-- xsl:element name="methodDuration">
<xsl:element name="average-gross">
<xsl:value-of select="$category0/frame/methodDuration/average-gross - sum(//frame[@mn!=$category0/frame/@mn]/methodDuration/average-gross)"/>
</xsl:element>
- <!-- xsl:element name="average-net">
+ <xsl:element name="average-net">
<xsl:value-of select="$category0/frame/methodDuration/average-net - sum(//frame[@mn!=$category0/frame/@mn]/methodDuration/average-net)"/>
- </xsl:element-->
- </xsl:element>
+ </xsl:element>
+ </xsl:element-->
<xsl:element name="other">
<xsl:element name="{$hibernate}">
- <xsl:value-of select="$category0/frame/*[name()!='methodDuration']/org.hibernate - sum(//frame[@mn!=$category0/frame/@mn]/*[name()!='methodDuration']/org.hibernate)"/>
+ <xsl:value-of select="$category0/frame/*/org.hibernate - sum(//frame[@mn!=$category0/frame/@mn]/*/org.hibernate)"/>
</xsl:element>
<xsl:element name="{$arjuna}">
- <xsl:value-of select="$category0/frame/*[name()!='methodDuration']/com.arjuna - sum(//frame[@mn!=$category0/frame/@mn]/*[name()!='methodDuration']/com.arjuna)"/>
+ <xsl:value-of select="$category0/frame/*/com.arjuna - sum(//frame[@mn!=$category0/frame/@mn]/*/com.arjuna)"/>
</xsl:element>
<xsl:element name="{$caveat-emptor}">
- <xsl:value-of select="$category0/frame/*[name()!='methodDuration']/auction - sum(//frame[@mn!=$category0/frame/@mn]/*[name()!='methodDuration']/auction)"/>
+ <xsl:value-of select="$category0/frame/*/auction - sum(//frame[@mn!=$category0/frame/@mn]/*/auction)"/>
</xsl:element>
<xsl:element name="{$jboss}">
- <xsl:value-of select="$category0/frame/*[name()!='methodDuration']/org.jboss - sum(//frame[@mn!=$category0/frame/@mn]/*[name()!='methodDuration']/org.jboss)"/>
+ <xsl:value-of select="$category0/frame/*/org.jboss - sum(//frame[@mn!=$category0/frame/@mn]/*/org.jboss)"/>
</xsl:element>
<xsl:element name="{$log4j}">
- <xsl:value-of select="$category0/frame/*[name()!='methodDuration']/org.apache.log4j - sum(//frame[@mn!=$category0/frame/@mn]/*[name()!='methodDuration']/org.apache.log4j)"/>
+ <xsl:value-of select="$category0/frame/*/org.apache.log4j - sum(//frame[@mn!=$category0/frame/@mn]/*/org.apache.log4j)"/>
</xsl:element>
<!-- Uses Ant to escape these package paths. -->
<xsl:choose>
<xsl:when test="'${db-vendor-package.xpath.A}' = '${db-vendor-package.xpath.B}'">
<!-- Both database vendors are the same -->
<xsl:element name="${db-vendor-package.xpath.A}">
- <xsl:value-of select="$category0/frame/*[name()!='methodDuration']/${db-vendor-package.xpath.A} - sum(//frame[@mn!=$category0/frame/@mn]/*[name()!='methodDuration']/${db-vendor-package.xpath.A})"/>
+ <xsl:value-of select="$category0/frame/*/${db-vendor-package.xpath.A} - sum(//frame[@mn!=$category0/frame/@mn]/*/${db-vendor-package.xpath.A})"/>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<!-- Different database vendors -->
<xsl:element name="${db-vendor-package.xpath.A}">
- <xsl:value-of select="$category0/frame/*[name()!='methodDuration']/${db-vendor-package.xpath.A} - sum(//frame[@mn!=$category0/frame/@mn]/*[name()!='methodDuration']/${db-vendor-package.xpath.A})"/>
+ <xsl:value-of select="$category0/frame/*/${db-vendor-package.xpath.A} - sum(//frame[@mn!=$category0/frame/@mn]/*/${db-vendor-package.xpath.A})"/>
</xsl:element>
<xsl:element name="${db-vendor-package.xpath.B}">
- <xsl:value-of select="$category0/frame/*[name()!='methodDuration']/${db-vendor-package.xpath.B} - sum(//frame[@mn!=$category0/frame/@mn]/*[name()!='methodDuration']/${db-vendor-package.xpath.B})"/>
+ <xsl:value-of select="$category0/frame/*/${db-vendor-package.xpath.B} - sum(//frame[@mn!=$category0/frame/@mn]/*/${db-vendor-package.xpath.B})"/>
</xsl:element>
</xsl:otherwise>
</xsl:choose>
Modified: labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl/analyseresults.xsl
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl/analyseresults.xsl 2010-02-11 19:44:20 UTC (rev 31579)
+++ labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl/analyseresults.xsl 2010-02-11 20:09:33 UTC (rev 31580)
@@ -152,17 +152,17 @@
</xsl:template>
<xsl:template name="method-totals">
- <xsl:element name="methodDuration">
+ <!--xsl:element name="methodDuration">
<xsl:element name="gross">
<xsl:value-of select="@t"></xsl:value-of>
</xsl:element>
- <!-- xsl:variable name="netTime">
+ < xsl:variable name="netTime">
<xsl:value-of select="@t -sum(./child::*/@t)" />
</xsl:variable>
<xsl:element name="net">
<xsl:value-of select="$netTime" />
- </xsl:element-->
- </xsl:element>
+ </xsl:element>
+ </xsl:element-->
</xsl:template>
<xsl:template name="package-totals">
Modified: labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl/average-results.xsl
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl/average-results.xsl 2010-02-11 19:44:20 UTC (rev 31579)
+++ labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl/average-results.xsl 2010-02-11 20:09:33 UTC (rev 31580)
@@ -32,42 +32,45 @@
<!-- context node: frame -->
<xsl:element name="frame">
<xsl:copy-of select="@mn"/>
- <xsl:element name="methodDuration">
+ <xsl:attribute name="t">
+ <xsl:value-of select="round(@t div @count)"/>
+ </xsl:attribute>
+ <!-- xsl:element name="methodDuration">
<xsl:element name="average-gross">
<xsl:value-of select="round(./methodDuration/gross div @count)"/>
</xsl:element>
- <!-- xsl:element name="average-net">
+ < xsl:element name="average-net">
<xsl:value-of select="round(./methodDuration/net div @count)"/>
- </xsl:element-->
- </xsl:element>
- <xsl:element name="{name(./*[name()!='methodDuration'])}">
+ </xsl:element>
+ </xsl:element-->
+ <xsl:element name="{name(./*)}">
<xsl:element name="{$hibernate}">
- <xsl:value-of select="round(./*[name()!='methodDuration']/org.hibernate div @count)"></xsl:value-of>
+ <xsl:value-of select="round(./*/org.hibernate div @count)"></xsl:value-of>
</xsl:element>
<xsl:element name="{$arjuna}">
- <xsl:value-of select="round(./*[name()!='methodDuration']/com.arjuna div @count)"></xsl:value-of>
+ <xsl:value-of select="round(./*/com.arjuna div @count)"></xsl:value-of>
</xsl:element>
<xsl:element name="{$caveat-emptor}">
- <xsl:value-of select="round(./*[name()!='methodDuration']/auction div @count)"></xsl:value-of>
+ <xsl:value-of select="round(./*/auction div @count)"></xsl:value-of>
</xsl:element>
<xsl:element name="{$jboss}">
- <xsl:value-of select="round(./*[name()!='methodDuration']/org.jboss div @count)"></xsl:value-of>
+ <xsl:value-of select="round(./*/org.jboss div @count)"></xsl:value-of>
</xsl:element>
<xsl:element name="{$log4j}">
- <xsl:value-of select="round(./*[name()!='methodDuration']/org.apache.log4j div @count)"></xsl:value-of>
+ <xsl:value-of select="round(./*/org.apache.log4j div @count)"></xsl:value-of>
</xsl:element>
<xsl:choose>
<xsl:when test="'${db-vendor-package.xpath.A}' = '${db-vendor-package.xpath.B}'">
<xsl:element name="${db-vendor-package.xpath.A}">
- <xsl:value-of select="round(./*[name()!='methodDuration']/*[position()=last()] div @count)"/>
+ <xsl:value-of select="round(./*/*[position()=last()] div @count)"/>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:element name="${db-vendor-package.xpath.A}">
- <xsl:value-of select="round(./*[name()!='methodDuration']/${db-vendor-package.xpath.A} div @count)"/>
+ <xsl:value-of select="round(./*/${db-vendor-package.xpath.A} div @count)"/>
</xsl:element>
<xsl:element name="${db-vendor-package.xpath.B}">
- <xsl:value-of select="round(./*[name()!='methodDuration']/${db-vendor-package.xpath.B} div @count)"/>
+ <xsl:value-of select="round(./*/${db-vendor-package.xpath.B} div @count)"/>
</xsl:element>
</xsl:otherwise>
</xsl:choose>
Modified: labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl/merge-thread-results.xsl
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl/merge-thread-results.xsl 2010-02-11 19:44:20 UTC (rev 31579)
+++ labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl/merge-thread-results.xsl 2010-02-11 20:09:33 UTC (rev 31580)
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- This stylesheet merges the results of multi-threaded calls. -->
+ <xsl:import href="csv-parser.xsl"/>
<xsl:param name="hibernate">org.hibernate</xsl:param>
<xsl:param name="arjuna">com.arjuna</xsl:param>
<xsl:param name="caveat-emptor">auction</xsl:param>
@@ -8,6 +9,14 @@
<xsl:param name="log4j">org.apache.log4j</xsl:param>
<xsl:param name="db-vendor-package.A" />
<xsl:param name="db-vendor-package.B" />
+ <xsl:param name="category-0-methods" />
+ <xsl:param name="category-B-methods" />
+ <xsl:param name="category-C-methods" />
+ <xsl:param name="category-D-methods" />
+ <xsl:key name="cat0-frame-method-name" match="/analysis/summary-analysis/category-0/frame" use="@mn" />
+ <xsl:key name="catB-frame-method-name" match="/analysis/summary-analysis/category-B/frame" use="@mn" />
+ <xsl:key name="catC-frame-method-name" match="/analysis/summary-analysis/category-C/frame" use="@mn" />
+ <xsl:key name="catD-frame-method-name" match="/analysis/summary-analysis/category-D/frame" use="@mn" />
<xsl:template match="/">
<xsl:apply-templates select="/*" />
@@ -19,99 +28,117 @@
</xsl:template>
<xsl:template match="summary-analysis">
<xsl:copy>
- <xsl:apply-templates select="category-0" />
+ <xsl:apply-templates select="category-0">
+ <xsl:with-param name="csv" select="$category-0-methods"/>
+ <xsl:with-param name="key-name">cat0-frame-method-name</xsl:with-param>
+ </xsl:apply-templates>
<xsl:copy-of select="./category-A" />
- <xsl:apply-templates select="category-B" />
- <xsl:apply-templates select="category-C" />
- <xsl:apply-templates select="category-D" />
+ <xsl:apply-templates select="category-B">
+ <xsl:with-param name="csv" select="$category-B-methods"/>
+ <xsl:with-param name="key-name">catB-frame-method-name</xsl:with-param>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="category-C">
+ <xsl:with-param name="csv" select="$category-C-methods"/>
+ <xsl:with-param name="key-name">catC-frame-method-name</xsl:with-param>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="category-D">
+ <xsl:with-param name="csv" select="$category-D-methods"/>
+ <xsl:with-param name="key-name">catD-frame-method-name</xsl:with-param>
+ </xsl:apply-templates>
+
</xsl:copy>
</xsl:template>
<xsl:template match="category-0|category-B|category-C|category-D">
+ <xsl:param name="csv"/>
+ <xsl:param name="key-name"/>
<!--
Context node: /analysis/summary-analysis/category-0 or category-B or
category-C or category-D
-->
+ <!-- xsl:copy>
+ <xsl:apply-templates select="frame"/>
+ </xsl:copy-->
+
<xsl:copy>
- <xsl:apply-templates select="frame"/>
+ <xsl:call-template name="parse-csv">
+ <xsl:with-param name="csv" select="$csv"/>
+ <xsl:with-param name="key-name" select="$key-name"/>
+ </xsl:call-template>
</xsl:copy>
</xsl:template>
-
- <xsl:template match="frame">
- <!-- Context node: /analysis/summary-analysis/*/frame -->
- <!-- Need to reduce the number of frame nodes that have the same method name @mn
- attribute. -->
- <xsl:variable name="methodName" select="./@mn"/>
+
+ <xsl:template name="callback">
+ <xsl:param name="variable"/>
+ <xsl:param name="key-name"/>
- <xsl:if test="0 = count(preceding::frame[@mn=$methodName])">
- <!-- Use the first node with a distinct @mn attribute value.
- Want to merge multiple source tree 'frame's with identical @mn to one
- in result tree. -->
- <xsl:element name="frame">
- <xsl:attribute name="mn">
- <xsl:value-of select="@mn" />
- </xsl:attribute>
- <xsl:attribute name="count">
- <!-- Assuming the reduction of counts is valid because each
- thread will be following a deterministic path. The @c count
- will be identical for each thread. -->
- <xsl:value-of select="count(../frame[@mn=$methodName]) * @c" />
- </xsl:attribute>
- <xsl:element name="methodDuration">
- <xsl:element name="gross">
- <xsl:value-of select="sum(../frame[@mn=$methodName]/methodDuration/gross) " />
- </xsl:element>
- <!-- xsl:element name="net">
- <xsl:value-of select="sum(../frame[@mn=$methodName]/methodDuration/net) " />
- </xsl:element-->
- </xsl:element>
-
- <xsl:element name="{name(./*['methodDuration' != name()])}">
- <xsl:element name="{$hibernate}">
+ <xsl:element name="frame">
+ <xsl:attribute name="mn">
+ <xsl:value-of select="$variable" />
+ </xsl:attribute>
+ <xsl:attribute name="count">
+ <!-- Assuming the reduction of counts is valid because each
+ thread will be following a deterministic path. The @c count
+ will be identical for each thread. -->
+ <xsl:value-of select="count(key($key-name, $variable))" />
+ </xsl:attribute>
+ <xsl:attribute name="t">
+ <xsl:value-of select="sum(key($key-name, $variable)/@t)"/>
+ </xsl:attribute>
+ <!-- xsl:element name="methodDuration">
+ <xsl:element name="gross">
+ <xsl:value-of select="sum(key($key-name, $variable)/methodDuration/gross) " />
+ </xsl:element>
+ </xsl:element-->
+
+ <xsl:element name="{translate($variable, ':', '.')}">
+
+ <xsl:element name="{$hibernate}">
+ <xsl:value-of
+ select="sum(key($key-name, $variable)/*/org.hibernate) " />
+ </xsl:element>
+ <xsl:element name="{$arjuna}">
+ <xsl:value-of
+ select="sum(key($key-name, $variable)/*/com.arjuna) " />
+ </xsl:element>
+ <xsl:element name="{$caveat-emptor}">
+ <xsl:value-of
+ select="sum(key($key-name, $variable)/*/auction) " />
+ </xsl:element>
+ <xsl:element name="{$jboss}">
+ <xsl:value-of
+ select="sum(key($key-name, $variable)/*/org.jboss) " />
+ </xsl:element>
+ <xsl:element name="{$log4j}">
+ <xsl:value-of
+ select="sum(key($key-name, $variable)/*/org.apache.log4j) " />
+ </xsl:element>
+ <xsl:choose>
+ <xsl:when
+ test="'${db-vendor-package.xpath.A}' = '${db-vendor-package.xpath.B}'">
+ <xsl:element name="${db-vendor-package.xpath.A}">
<xsl:value-of
- select="sum(../frame[@mn=$methodName]/*['methodDuration' != name()]/org.hibernate) " />
+ select="sum(key($key-name, $variable)/*/${db-vendor-package.xpath.A} ) " />
</xsl:element>
- <xsl:element name="{$arjuna}">
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="${db-vendor-package.xpath.A}">
<xsl:value-of
- select="sum(../frame[@mn=$methodName]/*['methodDuration' != name()]/com.arjuna) " />
+ select="sum(key($key-name, $variable)/*/${db-vendor-package.xpath.A} ) " />
</xsl:element>
- <xsl:element name="{$caveat-emptor}">
+ <xsl:element name="${db-vendor-package.xpath.B}">
<xsl:value-of
- select="sum(../frame[@mn=$methodName]/*['methodDuration' != name()]/auction) " />
+ select="sum(key($key-name, $variable)/*/${db-vendor-package.xpath.B} ) " />
</xsl:element>
- <xsl:element name="{$jboss}">
- <xsl:value-of
- select="sum(../frame[@mn=$methodName]/*['methodDuration' != name()]/org.jboss) " />
- </xsl:element>
- <xsl:element name="{$log4j}">
- <xsl:value-of
- select="sum(../frame[@mn=$methodName]/*['methodDuration' != name()]/org.apache.log4j) " />
- </xsl:element>
- <xsl:choose>
- <xsl:when
- test="'${db-vendor-package.xpath.A}' = '${db-vendor-package.xpath.B}'">
- <xsl:element name="${db-vendor-package.xpath.A}">
- <xsl:value-of
- select="sum(../frame[@mn=$methodName]/*['methodDuration' != name()]/${db-vendor-package.xpath.A} ) " />
- </xsl:element>
- </xsl:when>
- <xsl:otherwise>
- <xsl:element name="${db-vendor-package.xpath.A}">
- <xsl:value-of
- select="sum(../frame[@mn=$methodName]/*['methodDuration' != name()]/${db-vendor-package.xpath.A} ) " />
- </xsl:element>
- <xsl:element name="${db-vendor-package.xpath.B}">
- <xsl:value-of
- select="sum(../frame[@mn=$methodName]/*['methodDuration' != name()]/${db-vendor-package.xpath.B} ) " />
- </xsl:element>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:element>
- </xsl:element>
- </xsl:if>
-
-
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:element>
</xsl:template>
+
+
+
+
</xsl:stylesheet>
\ No newline at end of file
More information about the jboss-svn-commits
mailing list