[jboss-svn-commits] JBL Code SVN: r30385 - labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Nov 30 04:22:17 EST 2009


Author: whitingjr
Date: 2009-11-30 04:22:17 -0500 (Mon, 30 Nov 2009)
New Revision: 30385

Added:
   labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl/analyseresults.xsl
Log:
Stylesheet to process the raw profiling data.


Added: labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl/analyseresults.xsl
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl/analyseresults.xsl	                        (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/performance/src/main/resources/xsl/analyseresults.xsl	2009-11-30 09:22:17 UTC (rev 30385)
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+	<xsl:template match="/">
+	  <xsl:element name="analysis">
+		<xsl:copy>
+		    <xsl:comment>Time in nanoseconds</xsl:comment>
+			<xsl:apply-templates
+				select="//frame[@mn='org.hibernate.impl.SessionImpl:beginTransaction']|//frame[@mn='org.hibernate.ejb.AbstractEntityManagerImpl:find']|//frame[@mn='org.hibernate.ejb.AbstractEntityManagerImpl:flush']|//frame[@mn='org.hibernate.impl.SessionImpl:getTransaction']|//frame[@mn='org.hibernate.transaction.JTATransaction:commit']|//frame[@mn='org.hibernate.ejb.EntityManagerImpl:close']" mode="interesting"/>
+		</xsl:copy>
+	  </xsl:element>
+	</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="oracle">
+               <xsl:apply-templates select="child::frame">
+                   <xsl:with-param name="package-name">oracle</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: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:apply-templates select="child::frame">
+                   <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: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="average">
+               <xsl:value-of select="$netTime div number(@c)" />
+            </xsl:element>
+         </xsl:element>
+   </xsl:template>
+   
+   <xsl:template name="package-totals">
+      <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:element name="oracle">
+               <xsl:value-of select="sum( descendant::frame[starts-with(@mn, 'oracle')]/@t) - sum( descendant::frame[starts-with(@mn, 'oracle')]/frame/@t )"/>
+            </xsl:element>
+         </xsl:element>
+   </xsl:template>
+
+
+</xsl:stylesheet>



More information about the jboss-svn-commits mailing list