[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