[jboss-svn-commits] JBL Code SVN: r30985 - labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Jan 8 12:22:06 EST 2010
Author: whitingjr
Date: 2010-01-08 12:22:05 -0500 (Fri, 08 Jan 2010)
New Revision: 30985
Modified:
labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl/analyseresults.xsl
Log:
Changed stylesheet to categorise the profiling results.
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-01-08 17:17:56 UTC (rev 30984)
+++ labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl/analyseresults.xsl 2010-01-08 17:22:05 UTC (rev 30985)
@@ -1,174 +1,246 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:param name="db-vendor-package.A"/>
- <xsl:param name="db-vendor-package.B"/>
- <xsl:param name="category0-method"/><!-- this is the whole test method -->
- <xsl:param name="categoryB-method"/><!-- Resource A Read [Write] -->
- <xsl:param name="categoryC-method"/><!-- Resource B Read Write -->
- <xsl:param name="categoryD-method"/><!-- Commit -->
-
- <xsl:param name="xpaths"/>
+ <xsl:param name="db-vendor-package.A" />
+ <xsl:param name="db-vendor-package.B" />
+ <xsl:param name="category0-method" />
+ <!--
+ this is the whole test method
+ -->
+ <xsl:param name="categoryB-method" />
+ <!--
+ Resource A Read [Write]
+ -->
+ <xsl:param name="categoryC-method" />
+ <!--
+ Resource B Read Write
+ -->
+ <xsl:param name="categoryD-method" /><!-- Commit -->
+ <xsl:param name="xpaths" />
+
<xsl:template match="/">
- <xsl:element name="analysis">
- <xsl:comment>Time in nanoseconds</xsl:comment>
- <xsl:comment>xpaths[<xsl:value-of select="$xpaths"/>]</xsl:comment>
- <xsl:comment>db vendor packages[<xsl:value-of select="$db-vendor-package.A"/>],<xsl:value-of select="$db-vendor-package.B"/>]</xsl:comment>
- <xsl:element name="summary-analysis">
- <xsl:element name="category-0">
- <xsl:comment>This is the whole test.</xsl:comment>
- <xsl:apply-templates
- select="//frame[contains($category0-method, @mn)]" mode="interesting"/>
- </xsl:element>
- <xsl:element name="category-A">
- <xsl:comment>This is the whole test method less categories B, C and D.</xsl:comment>
-
- </xsl:element>
- <xsl:element name="category-B">
- <xsl:comment>First resource.</xsl:comment>
- <xsl:apply-templates
- select="//frame[contains($categoryB-method, @mn)]" mode="interesting"/>
- </xsl:element>
- <xsl:element name="category-C">
- <xsl:comment>Second resource.</xsl:comment>
- <xsl:apply-templates
- select="//frame[contains($categoryC-method, @mn)]" mode="interesting"/>
- </xsl:element>
- <xsl:element name="category-D">
- <xsl:comment>Commit.</xsl:comment>
- <xsl:apply-templates
- select="//frame[contains($categoryD-method, @mn)]" mode="interesting"/>
- </xsl:element>
- </xsl:element>
- <!-- xsl:element name="detailed-analysis">
- <xsl:copy>
- <xsl:comment>Time in nanoseconds</xsl:comment>
- <xsl:comment>xpaths[<xsl:value-of select="$xpaths"/>]</xsl:comment>
- <xsl:comment>db vendor packages[<xsl:value-of select="$db-vendor-package.A"/>],<xsl:value-of select="$db-vendor-package.B"/>]</xsl:comment>
- <xsl:apply-templates
- select="//frame[contains($xpaths, @mn)]" mode="interesting"/>
-
- </xsl:copy>
- </xsl:element-->
- </xsl:element>
+ <xsl:element name="analysis">
+ <xsl:comment>
+ Time in nanoseconds
+ </xsl:comment>
+ <xsl:comment>
+ xpaths[
+ <xsl:value-of select="$xpaths" />
+ ]
+ </xsl:comment>
+ <xsl:comment>
+ db vendor packages[
+ <xsl:value-of select="$db-vendor-package.A" />
+ ],
+ <xsl:value-of select="$db-vendor-package.B" />
+ ]
+ </xsl:comment>
+ <xsl:element name="summary-analysis">
+ <!--
+ Create variables based on nodes that are relevant per category.
+ These will be used to generate totals for the category and reused
+ to calculate category A total.
+ -->
+ <xsl:variable name="category0-nodes"
+ select="//frame[contains($category0-method, @mn)]" />
+ <xsl:variable name="categoryB-nodes"
+ select="//frame[contains($categoryB-method, @mn)]" />
+ <xsl:variable name="categoryC-nodes"
+ select="//frame[contains($categoryC-method, @mn)]" />
+ <xsl:variable name="categoryD-nodes"
+ select="//frame[contains($categoryD-method, @mn)]" />
+ <xsl:element name="category-0">
+ <xsl:comment>
+ This is the whole test.
+ </xsl:comment>
+ <xsl:apply-templates select="$category0-nodes"
+ mode="interesting" />
+ </xsl:element>
+
+ <xsl:element name="category-A">
+ <xsl:comment>
+ This is the whole test method less categories B, C and D.
+ </xsl:comment>
+ <xsl:element name="frame">
+ <xsl:attribute name="everything">else</xsl:attribute>
+ <xsl:element name="methodDuration">
+
+ <xsl:variable name="categoryA-gross"
+ select="sum($category0-nodes/@t) - ( sum($categoryB-nodes/@t) + sum($categoryC-nodes/@t) + sum($categoryD-nodes/@t) )" />
+ <xsl:variable name="categoryA-net">
+ <xsl:value-of
+ select="(sum($category0-nodes/@t) - sum($category0-nodes/child::*/@t)) - ( ( sum($categoryB-nodes/@t) - sum($categoryB-nodes/child::*/@t)) + (sum($categoryC-nodes/@t)- sum($categoryC-nodes/child::*/@t)) + (sum($categoryD-nodes/@t) - sum($categoryD-nodes/child::*/@t) ) )"></xsl:value-of>
+ </xsl:variable>
+ <xsl:element name="gross">
+ <xsl:value-of select="$categoryA-gross" />
+ </xsl:element>
+ <xsl:element name="net">
+ <xsl:value-of select="$categoryA-net" />
+ </xsl:element>
+ <xsl:element name="gross-average">
+ <xsl:value-of select="round($categoryA-gross div $category0-nodes/@c)" />
+ </xsl:element>
+ <xsl:element name="net-average">
+ <xsl:value-of select="round($categoryA-net div $category0-nodes/@c)" />
+ </xsl:element>
+ </xsl:element>
+ <xsl:comment>
+ Package totals are not relevant
+ </xsl:comment>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="category-B">
+ <xsl:comment>
+ First resource.
+ </xsl:comment>
+ <xsl:apply-templates select="$categoryB-nodes"
+ mode="interesting" />
+ </xsl:element>
+ <xsl:element name="category-C">
+ <xsl:comment>
+ Second resource.
+ </xsl:comment>
+ <xsl:apply-templates select="$categoryC-nodes"
+ mode="interesting" />
+ </xsl:element>
+ <xsl:element name="category-D">
+ <xsl:comment>
+ Commit.
+ </xsl:comment>
+ <xsl:apply-templates select="$categoryD-nodes"
+ mode="interesting" />
+ </xsl:element>
+ </xsl:element>
+ <!--
+ xsl:element name="detailed-analysis"> <xsl:copy> <xsl:comment>Time
+ in nanoseconds</xsl:comment> <xsl:comment>xpaths[<xsl:value-of
+ select="$xpaths"/>]</xsl:comment> <xsl:comment>db vendor
+ packages[<xsl:value-of
+ select="$db-vendor-package.A"/>],<xsl:value-of
+ select="$db-vendor-package.B"/>]</xsl:comment> <xsl:apply-templates
+ select="//frame[contains($xpaths, @mn)]" mode="interesting"/>
+
+ </xsl:copy> </xsl:element
+ -->
+ </xsl:element>
</xsl:template>
- <xsl:template match="frame" mode="interesting">
- <xsl:call-template name="generate-interesting-method-xml"/>
- </xsl:template>
+ <xsl:template match="frame" mode="interesting">
+ <xsl:call-template name="generate-interesting-method-xml" />
+ </xsl:template>
<xsl:template name="generate-interesting-method-xml">
<xsl:element name="{name()}">
<xsl:copy-of select="@mn" />
- <xsl:copy-of select="@c" />
- <xsl:copy-of select="@t" />
-
- <xsl:call-template name="method-totals"/>
- <!--
- <xsl:element name="results-by-package">
- <xsl:element name="org.hibernate">
- <xsl:apply-templates select="child::frame">
- <xsl:with-param name="package-name">org.hibernate</xsl:with-param>
- </xsl:apply-templates>
- </xsl:element>
- <xsl:element name="com.arjuna">
- <xsl:apply-templates select="child::frame">
- <xsl:with-param name="package-name">com.arjuna</xsl:with-param>
- </xsl:apply-templates>
- </xsl:element>
- <xsl:element name="{string($db-vendor-package.A)}">
- <xsl:apply-templates select="child::frame">
- <xsl:with-param name="package-name">$db-vendor-package.A</xsl:with-param>
- </xsl:apply-templates>
- </xsl:element>
- <xsl:element name="{string($db-vendor-package.B)}">
- <xsl:apply-templates select="child::frame">
- <xsl:with-param name="package-name">$db-vendor-package.B</xsl:with-param>
- </xsl:apply-templates>
- </xsl:element>
- </xsl:element>
- -->
- <xsl:call-template name="package-totals"/>
-
+ <xsl:copy-of select="@c" />
+ <xsl:copy-of select="@t" />
+
+ <xsl:call-template name="method-totals" />
+ <!--
+ <xsl:element name="results-by-package"> <xsl:element
+ name="org.hibernate"> <xsl:apply-templates select="child::frame">
+ <xsl:with-param name="package-name">org.hibernate</xsl:with-param>
+ </xsl:apply-templates> </xsl:element> <xsl:element
+ name="com.arjuna"> <xsl:apply-templates select="child::frame">
+ <xsl:with-param name="package-name">com.arjuna</xsl:with-param>
+ </xsl:apply-templates> </xsl:element> <xsl:element
+ name="{string($db-vendor-package.A)}"> <xsl:apply-templates
+ select="child::frame"> <xsl:with-param
+ name="package-name">$db-vendor-package.A</xsl:with-param>
+ </xsl:apply-templates> </xsl:element> <xsl:element
+ name="{string($db-vendor-package.B)}"> <xsl:apply-templates
+ select="child::frame"> <xsl:with-param
+ name="package-name">$db-vendor-package.B</xsl:with-param>
+ </xsl:apply-templates> </xsl:element> </xsl:element>
+ -->
+ <xsl:call-template name="package-totals" />
+
</xsl:element>
</xsl:template>
<xsl:template match="frame">
- <xsl:param name="package-name"/>
+ <xsl:param name="package-name" />
<xsl:choose>
<xsl:when test="starts-with(@mn, $package-name)">
<xsl:copy>
<xsl:copy-of select="@mn" />
- <xsl:copy-of select="@c" />
- <xsl:copy-of select="@t" />
- <xsl:call-template name="method-totals"/>
+ <xsl:copy-of select="@c" />
+ <xsl:copy-of select="@t" />
+ <xsl:call-template name="method-totals" />
<xsl:apply-templates select="child::frame">
- <xsl:with-param name="package-name" select="$package-name"/>
- </xsl:apply-templates>
+ <xsl:with-param name="package-name" select="$package-name" />
+ </xsl:apply-templates>
</xsl:copy>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="child::frame">
- <xsl:with-param name="package-name" select="$package-name"/>
- </xsl:apply-templates>
+ <xsl:with-param name="package-name" select="$package-name" />
+ </xsl:apply-templates>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
- <xsl:template name="method-totals">
- <xsl:element name="methodDuration">
- <xsl:element name="gross">
- <xsl:value-of select="@t"></xsl:value-of>
- </xsl:element>
- <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 name="gross-average">
- <xsl:value-of select="round( @t div number(@c) )" />
- </xsl:element>
- <xsl:element name="net-average">
- <xsl:value-of select="round( $netTime div number(@c) )" />
- </xsl:element>
- </xsl:element>
- </xsl:template>
-
- <xsl:template name="package-totals">
- <xsl:comment>Package totals.</xsl:comment>
- <xsl:element name="{translate(@mn, ':', '.')}">
- <xsl:element name="hibernate">
- <xsl:value-of select="sum( descendant::frame[starts-with(@mn, 'org.hibernate')]/@t) - sum( descendant::frame[starts-with(@mn, 'org.hibernate')]/frame/@t )"/>
- </xsl:element>
- <xsl:element name="arjuna">
- <xsl:value-of select="sum( descendant::frame[starts-with(@mn, 'com.arjuna')]/@t) - sum( descendant::frame[starts-with(@mn, 'com.arjuna')]/frame/@t )"/>
- </xsl:element>
- <xsl:choose>
- <xsl:when test="$db-vendor-package.A != $db-vendor-package.B"><!-- different resource vendors-->
- <xsl:element name="{string($db-vendor-package.A)}">
- <xsl:value-of select="sum( descendant::frame[starts-with(@mn, $db-vendor-package.A)]/@t) - sum( descendant::frame[starts-with(@mn, $db-vendor-package.A)]/frame/@t )"/>
- </xsl:element>
- <xsl:element name="{string($db-vendor-package.B)}">
- <xsl:value-of select="sum( descendant::frame[starts-with(@mn, $db-vendor-package.B)]/@t) - sum( descendant::frame[starts-with(@mn, $db-vendor-package.B)]/frame/@t )"/>
- </xsl:element>
- </xsl:when>
- <xsl:otherwise><!-- resource vendors are identical -->
- <xsl:variable name="identical-vendor-duration" select="round( sum( descendant::frame[starts-with(@mn, $db-vendor-package.B)]/@t) - sum( descendant::frame[starts-with(@mn, $db-vendor-package.B)]/frame/@t ) div 2 )"/>
- <xsl:element name="{string($db-vendor-package.A)}">
- <xsl:value-of select="$identical-vendor-duration"/>
- </xsl:element>
- <xsl:element name="{string($db-vendor-package.B)}">
- <xsl:value-of select="$identical-vendor-duration"/>
- </xsl:element>
- </xsl:otherwise>
- </xsl:choose>
-
- </xsl:element>
- </xsl:template>
+ <xsl:template name="method-totals">
+ <xsl:element name="methodDuration">
+ <xsl:element name="gross">
+ <xsl:value-of select="@t"></xsl:value-of>
+ </xsl:element>
+ <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 name="gross-average">
+ <xsl:value-of select="round( @t div number(@c) )" />
+ </xsl:element>
+ <xsl:element name="net-average">
+ <xsl:value-of select="round( $netTime div number(@c) )" />
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="package-totals">
+ <xsl:comment>
+ Package totals.
+ </xsl:comment>
+ <xsl:element name="{translate(@mn, ':', '.')}">
+ <xsl:element name="hibernate">
+ <xsl:value-of
+ select="sum( descendant::frame[starts-with(@mn, 'org.hibernate')]/@t) - sum( descendant::frame[starts-with(@mn, 'org.hibernate')]/frame/@t )" />
+ </xsl:element>
+ <xsl:element name="arjuna">
+ <xsl:value-of
+ select="sum( descendant::frame[starts-with(@mn, 'com.arjuna')]/@t) - sum( descendant::frame[starts-with(@mn, 'com.arjuna')]/frame/@t )" />
+ </xsl:element>
+ <xsl:choose>
+ <xsl:when test="$db-vendor-package.A != $db-vendor-package.B"><!-- different resource vendors-->
+ <xsl:element name="{string($db-vendor-package.A)}">
+ <xsl:value-of
+ select="sum( descendant::frame[starts-with(@mn, $db-vendor-package.A)]/@t) - sum( descendant::frame[starts-with(@mn, $db-vendor-package.A)]/frame/@t )" />
+ </xsl:element>
+ <xsl:element name="{string($db-vendor-package.B)}">
+ <xsl:value-of
+ select="sum( descendant::frame[starts-with(@mn, $db-vendor-package.B)]/@t) - sum( descendant::frame[starts-with(@mn, $db-vendor-package.B)]/frame/@t )" />
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise><!-- resource vendors are identical -->
+ <xsl:variable name="identical-vendor-duration"
+ select="round( sum( descendant::frame[starts-with(@mn, $db-vendor-package.B)]/@t) - sum( descendant::frame[starts-with(@mn, $db-vendor-package.B)]/frame/@t ) div 2 )" />
+ <xsl:element name="{string($db-vendor-package.A)}">
+ <xsl:value-of select="$identical-vendor-duration" />
+ </xsl:element>
+ <xsl:element name="{string($db-vendor-package.B)}">
+ <xsl:value-of select="$identical-vendor-duration" />
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:template>
+
+
</xsl:stylesheet>
More information about the jboss-svn-commits
mailing list