[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