You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by te...@apache.org on 2007/05/05 16:37:21 UTC
svn commit: r535532 [11/11] - in /harmony/standard/site: docs/
docs/documentation/ docs/subcomponents/buildtest/
docs/subcomponents/classlibrary/ docs/subcomponents/drlvm/
docs/subcomponents/jchevm/ docs/subcomponents/stresstest/ xdocs/stylesheets/
Modified: harmony/standard/site/docs/subcomponents/drlvm/internal_profiler.html
URL: http://svn.apache.org/viewvc/harmony/standard/site/docs/subcomponents/drlvm/internal_profiler.html?view=diff&rev=535532&r1=535531&r2=535532
==============================================================================
--- harmony/standard/site/docs/subcomponents/drlvm/internal_profiler.html (original)
+++ harmony/standard/site/docs/subcomponents/drlvm/internal_profiler.html Sat May 5 07:37:18 2007
@@ -1,489 +1,489 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements. See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License. You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-
-
-<!-- start the processing -->
- <!-- ====================================================================== -->
- <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
- <!-- Main Page Section -->
- <!-- ====================================================================== -->
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-
- <meta name="author" value="Harmony Documentation Team">
- <meta name="email" value="dev@harmony.apache.org">
-
-
-
-
-
-
-
- <title>Apache Harmony - Apache Harmony DRL Virtual Machine</title>
-
-
-
- <link rel="stylesheet" type="text/css" href="../../site.css"/>
- </head>
-
- <body>
- <table width="100%" cellspacing="0">
- <!-- TOP IMAGE -->
- <tr>
- <td align='LEFT'>
- <table><tr><td>
- <td>
-<a href="http://harmony.apache.org/"><img src="../../images/harmony-logo-new.png" alt="Apache Harmony" /></a>
-</td>
-</td>
- </td></tr></table>
- </td>
- <td align='RIGHT'>
- <a href="http://www.apachecon.com/2007/EU/index.html">
- <img src="http://www.apache.org/ads/ApacheCon/2007-europe-234x60.png"
- alt="ApacheCon Europe 2007" /></a>
- </td>
- </tr>
- </table>
- <table width="100%" cellspacing="4">
- <tr><td colspan="2">
- <hr noshade="" size="1"/>
- </td></tr>
-
- <tr>
- <!-- LEFT SIDE NAVIGATION -->
- <td class="menuItem" width="20%" nowrap="true">
-
- <!-- special ACon Logo - leave here for next time
- <a href="http://www.us.apachecon.com/">
- <img src="http://www.apache.org/ads/ApacheCon/2007-europe-125x125.png"
- alt="ApacheCon Europe 2007" />
- </a> -->
-
- <!-- regular menu -->
-
-
- <!-- ============================================================ -->
-
- <p class="menuItem"><strong>General</strong></p>
- <ul>
- <li class="menuItem"> <a href="../../index.html">Home</a>
-</li>
-
-
- <li class="menuItem"> <a href="../../license.html">License</a>
-</li>
-
-
- <li class="menuItem"> <a href="http://apache.org">ASF</a>
-</li>
-
-
- <li class="menuItem"> <a href="../../contribution_policy.html">Contribution Policy</a>
-</li>
-
-
- <li class="menuItem"> <a href="../../downloads.html">Downloads</a>
-</li>
-
-
- <li class="menuItem"> <a href="../../faq.html">FAQ</a>
-</li>
-
-
-
- </ul>
- <p class="menuItem"><strong>Community</strong></p>
- <ul>
- <li class="menuItem"> <a href="../../get-involved.html">Get Involved</a>
-</li>
-
-
- <li class="menuItem"> <a href="../../contributors.html">Who we are</a>
-</li>
-
-
- <li class="menuItem"> <a href="../../mailing.html">Mailing Lists</a>
-</li>
-
-
- <li class="menuItem"> <a href="http://issues.apache.org/jira/browse/HARMONY">Bug Tracker</a>
-</li>
-
-
- <li class="menuItem"> <a href="../../related.html">Other Projects</a>
-</li>
-
-
-
- </ul>
- <p class="menuItem"><strong>Development</strong></p>
- <ul>
- <li class="menuItem"> <a href="../../svn.html">Source Code</a>
-</li>
-
-
- <li class="menuItem"> <a href="../../quickhelp_contributors.html">Getting Started</a>
-</li>
-
-
- <li class="menuItem"> <a href="../../roadmap.html">Project Roadmap</a>
-</li>
-
-
- <li class="menuItem"> <a href="../../issue_resolution_guideline.html">Resolution Guideline</a>
-</li>
-
-
- <li class="menuItem"> <a href="../../performance.html">Performance</a>
-</li>
-
-
-
- </ul>
- <p class="menuItem"><strong>Documentation</strong></p>
- <ul>
- <li class="menuItem"> <a href="../../sitemap.html">Sitemap</a>
-</li>
-
-
- <li class="menuItem"> <a href="http://wiki.apache.org/harmony">Wiki</a>
-</li>
-
-
- <li class="menuItem"> <a href="../../hdk.html">HDK</a>
-</li>
-
-
- <li class="menuItem"> <a href="../../subcomponents/drlvm/index.html">DRLVM</a>
-</li>
-
-
- <li class="menuItem"> <a href="../../subcomponents/classlibrary/index.html">Class Library</a>
-</li>
-
-
- <li class="menuItem"> <a href="../../subcomponents/buildtest/index.html">Build-test Framework</a>
-</li>
-
-
-
- </ul>
- </td>
- <td width="80%" valign="top"><a name="top"></a>
- <h1>
- <a name="Jitrino.OPT Internal Profiler Tool">Jitrino.OPT Internal Profiler Tool</a>
- </h1>
- <ol id="TOC">
- <li><a href="#About This Document">About This Document</a></li>
- <li><a href="#Overview">Overview</a></li>
- <li><a href="#Configuring the Profiler">Configuring the Profiler</a>
- <ol><li><a href="#Available Global Parameters">Available Global Parameters</a></li>
- <li><a href="#Counters">Counters</a></li>
- <li><a href="#Re-using Filter Parameters">Re-using Filter Parameters between Counters</a></li>
- </ol>
- </li>
- <li><a href="#Dumping of Counters">Dumping of Counters</a></li>
- <li><a href="#Example of iprof Configuration File">Example of iprof Configuration File</a></li>
- <li><a href="#Example of Profiler Output">Example of Profiler Output</a></li>
- </ol>
-
- <h2>
- <a name="About This Document">About This Document</a>
- </h2>
-
- <p>This document defines the internal profiler tool (iprof) for <a href="JIT.html">Jitrino.OPT</a>
-code generator and describes how to use it.</p>
-
-
- <h2>
- <a name="Overview">Overview</a>
- </h2>
-
- <p>The internal profiler can instrument code so that per-method counters of <i>executed</i> (not just compiled)
-instructions can be dumped. Operation of iprof is configured in the <code>iprof.cfg</code>
-file, as described in this document. For sample iprof tool output, see the<a href="#ExampleOutput">example</a>.</p>
- <p> To enable iprof, do the following:</p>
- <ol>
-<li>Specify the following command-line option to DRLVM on startup:
-<pre>-XDjit.arg.codegen.iprof=on</pre></li>
-<li> Place the configuration file <code>iprof.cfg</code> in the same directory
-where you are starting DRLVM.</li>
-</ol>
-
-
- <h2>
- <a name="Configuring the Profiler">Configuring the Profiler</a>
- </h2>
-
- <p>The configuration file <code>iprof.cfg</code> consists of a list of global parameters
-and a list of counters, as defined in this section. For a sample iprof configuration,
-see the <a href="#ExampleConfig">example</a>.</p>
- <h3><a name="Available Global Parameters" />Available Global Parameters</h3>
- <pre>Config.PrintBBStats=false #(boolean)</pre>
- <p>This parameter turns on statistics dumping for all basic blocks of a method.</p>
- <h3><a name="Counters" />Counters</h3>
- <p>Counters collect information about executed
-instructions defined by the filter.
-Counters have the following attributes:</p>
- <ul>
-<li><em>Name</em> identifies the counter. This attribute is defined by the first
-line in a <code>[begin]/[end]</code> section starting with <code>Counter.</code>,
-and all symbols after it and up to the next period <code>.</code> or an
-equal mark <code>=</code> or <code>\n</code> constitute the name of the counter.</li>
-<li><em>Title</em> is the for the dumped column. [optional]</li>
-<li><em>Filter</em> lists properties of the instructions to count. You can define
-properties for the instruction (mnemonic, the number of operands), for a specific
-operand (for example, the area of placement) or include run-time information (for
-example, whether the call is a helper and the helper name). See the list of filter
-parameters below. <br />
-All filter parameters can be considered parts of an <code>AND</code> expression.
-You can also use the <code>IsOr</code> filter attribute to provide an <code>OR</code>
-operation for all filter parameters, for example:
-<br /><code>Counter.Name0.IsOr=true</code></li>
-</ul>
- <p class="example">Example</p>
- <pre>###########
-[begin]
-Counter.CALL.Mnemonic=CALL
-[end]
-
-[begin]
-Counter.AddCounter.Title=ADD_EAX_COUNTER
-Counter.AddCounter.Mnemonic=ADD
-Counter.AddCounter.Operand.0.RegName=EAX
-[end]
-###########</pre>
- <p>All properties of an instruction correspond to names of entities of the Jitrino
-IA-32 code generator, for example:</p>
- <pre>Mnemonic_CALL => CALL
-OpndKind_Mem => Mem</pre>
- <dl>
-<dt>Operand attributes</dt>
-<dd>
-<code>Operand.OpNum Operand number (can be *)<br />
-Operand.OpNum.OpndRole Operand role<br />
-Operand.OpNum.OpndKind Operand kind<br />
-Operand.OpNum.RegName Register name<br />
-Operand.OpNum.MemOpndKind Memory operand kind</code>
-</dd>
-
-<dt> Instruction attributes</dt>
-<dd>
-<code>Mnemonic Instruction mnemonic<br />
-OperandNumber Number of operands</code>
-</dd>
-
-<dt> Run-time information attributes</dt>
-<dd>
-<code>RuntimeInfo.Kind Runtime information kind<br />
-RuntimeInfo.HelperID VM Helper identifier<br />
-RuntimeInfo.IntHelperName Internal helper name</code>
-</dd>
-
-<dt>Call instruction attributes </dt>
-<dd>
-<code>isNative<br />
-isStatic<br />
-isSynchronized<br />
-isNoInlining<br />
-isInstance<br />
-isFinal<br />
-isVirtual<br />
-isAbstract<br />
-isClassInitializer<br />
-isInstanceInitializer<br />
-isStrict<br />
-isRequireSecObject<br />
-isInitLocals<br />
-isOverridden</code>
-<p>The counter does not work for other instructions.</p>
-</dd>
-</dl>
- <h3><a name="Re-using Filter Parameters" />Re-using Filter Parameters between Counters
-</h3>
- <p>Filter parameters of a counter can be re-used and
-extended by another counter, for example:</p>
- <pre>[begin]
-Counter.CALL_Inst.Mnemonic=CALL
-[end]
-[begin]
-Counter.I_HELPER_CALL=CALL_Inst
-Counter.I_HELPER_CALL.RuntimeInfo.Kind=InternalHelperAddress
-[end]</pre>
- <p class="note">Warning</p>
- <p class="notetext">Space Characters should not be used outside comments.</p>
-
-
- <h2>
- <a name="Dumping of Counters">Dumping of Counters</a>
- </h2>
-
- <p>The iprof tool
-creates the file iprof.stat on exit of
-a DRLVM session in the directory where DRLVM was started. Tabbed text format can
- be edited by spreadsheets.</p>
-
-
- <h2>
- <a name="Example of iprof Configuration File">Example of iprof Configuration File</a>
- </h2>
-
- <a name="ExampleConfig" />
- <p>This is an example of the Jitrino.OPT internal profiler configuration.</p>
- <pre>Config.PrintBBStats=true
-[begin]
-#for counting of all instructions you can specify any word as Mnemonic
-Counter.Insts.Mnemonic=Any
-[end]
-
-#hardcoded counters with only parameter "title"
-###############################################
-[begin]
-#Size of java bytecode of a method
-Counter.ByteCodeSize
-[end]
-#
-[begin]
-#Number of execution times of the hottest basic block of a method
-Counter.MaxBBExec
-[end]
-[begin]
-##ID nuber of the hottest basic block
-Counter.HottestBBNum
-[end]
-#
-[begin]
-##Number of exception handlers of a method
-Counter.ExcHandlersNum
-[end]
-#
-[begin]
-#Number of calls of a method
-Counter.MethodExec
-Counter.MethodExec.Title=Number of calls of a method
-[end]
-#
-[begin]
-#Basic block execution count
-Counter.BBExec
-[end]
-################################################
-[begin]
-Counter.OpNum.OpndNumber=3
-[end]
-[begin]
-#count instructions with memory access in first five operands
-Counter.MemOpnd.IsOR=true
-Counter.MemOpnd.Operand.*.OpndKind=Mem
-#Counter.MemOpnd.Operand.1.OpndKind=Mem
-[end]
-[begin]
-Counter.UseOpnd.Operand.0.OpndRole=Use
-[end]
-[begin]
-Counter.EAXOpnd.Operand.0.RegName=EAX
-[end]
-[begin]
-Counter.HeapOpnd.Operand.0.MemOpndKind=Heap
-[end]
-[begin]
-Counter.Method.isNative=true
-Counter.Method.isStatic=true
-Counter.Method.isSynchronized=true
-Counter.Method.isNoInlining=true
-Counter.Method.isInstance=true
-Counter.Method.isFinal=true
-Counter.Method.isVirtual=true
-Counter.Method.isAbstract=true
-Counter.Method.isClassInitializer=true
-Counter.Method.isInstanceInitializer=true
-Counter.Method.isStrict=true
-Counter.Method.isRequireSecObject=true
-Counter.Method.isInitLocals=true
-Counter.Method.isOverridden=true
-[end]
-
-[begin]
-Counter.CALL.Mnemonic=CALL
-[end]
-[begin]
-Counter.I_HELPER_CALL=CALL
-Counter.I_HELPER_CALL.RuntimeInfo.Kind=InternalHelperAddress
-[end]
-[begin]
-Counter.HELPER_CALL=CALL
-Counter.HELPER_CALL.RuntimeInfo.Kind=HelperAddress
-Counter.HELPER_CALL.RuntimeInfo.HelperID=LdString
-[end]</pre>
-
-
- <h2>
- <a name="Example of Profiler Output">Example of Profiler Output</a>
- </h2>
-
- <p>This is a fragment of a sample <code>stat</code> file that iprof produces.</p>
- <a name="ExampleOutput" />
- <pre>Method name Insts ByteCodeSize MaxBBExec HottestBBNum ExcHandlersNum Number of calls of a method BBExec CALL I_HELPER_CALL HELPER_CALL LDSTRING NEWOBJ_USINGVTABLE NEWVECTOR_USINGVTABLE NEWOBJ NEWVECTOR NEWMULTIARRAY OBJMONITORENTER ObjMonitorExit TYPEMONITORENTER TYPEMONITOREXIT THROW_KEEPSTACKTRACE THROW_SETSTACKTRACE THROW_LAZY NULLPTREXCEPTION ARRAYBOUNDSEXCEPTION ELEMTYPEEXCEPTION DIVIDEBYZEROEXCEPTION THROW_LINKINGEXCEPTION DIVI32 DIVU32 DIVI64 DIVU64 DIVSINGLE DIVDOUBLE REMI32 REMU32 REMI64 REMU64 REMSINGLE RemDouble MulI64 ShlI64 ShrI64 ShruI64 ConvStoI32 ConvStoI64 ConvDtoI32 ConvDtoI64 LdInterface Cast IsInstanceOf InitType IsValidElemType CharArrayCopy MANAGE_CALL MemOpnd Method
-java/lang/Thread.<clinit> 7 13 1 2 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 4 0
-java/lang/Object.<init> 6445 1 6445 2 0 6444 6445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-java/lang/Thread.<init> 2440 257 24 0 0 24 284 280 0 79 26 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 0 0 129 800 48 </pre>
-
- <p><a href="#top">Back to top</a></p>
-
- </td>
- </tr>
-
- <!-- FOOTER -->
- <tr><td colspan="2">
- <hr noshade="" size="1"/>
- </td></tr>
- <tr><td colspan="2">
- <div class="special"><em>
- Copyright © 2003-2007, The Apache Software Foundation
- </em></div>
- </td></tr>
- </table>
- </body>
- </html>
-<!-- end the processing -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+
+<!-- start the processing -->
+ <!-- ====================================================================== -->
+ <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+ <!-- Main Page Section -->
+ <!-- ====================================================================== -->
+ <html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
+
+ <meta name="author" value="Harmony Documentation Team">
+ <meta name="email" value="dev@harmony.apache.org">
+
+
+
+
+
+
+
+ <title>Apache Harmony - Apache Harmony DRL Virtual Machine</title>
+
+
+
+ <link rel="stylesheet" type="text/css" href="../../site.css"/>
+ </head>
+
+ <body>
+ <table width="100%" cellspacing="0">
+ <!-- TOP IMAGE -->
+ <tr>
+ <td align='LEFT'>
+ <table><tr><td>
+ <td>
+<a href="http://harmony.apache.org/"><img src="../../images/harmony-logo-new.png" alt="Apache Harmony" /></a>
+</td>
+</td>
+ </td></tr></table>
+ </td>
+ <td align='RIGHT'>
+ <a href="http://www.us.apachecon.com/">
+ <img src="http://www.apache.org/ads/ApacheCon/2007-usa-234x60.png"
+ alt="ApacheCon US 2007" /></a>
+ </td>
+ </tr>
+ </table>
+ <table width="100%" cellspacing="4">
+ <tr><td colspan="2">
+ <hr noshade="" size="1"/>
+ </td></tr>
+
+ <tr>
+ <!-- LEFT SIDE NAVIGATION -->
+ <td class="menuItem" width="20%" nowrap="true">
+
+ <!-- special ACon Logo - leave here for next time
+ <a href="http://www.us.apachecon.com/">
+ <img src="http://www.apache.org/ads/ApacheCon/2007-europe-125x125.png"
+ alt="ApacheCon Europe 2007" />
+ </a> -->
+
+ <!-- regular menu -->
+
+
+ <!-- ============================================================ -->
+
+ <p class="menuItem"><strong>General</strong></p>
+ <ul>
+ <li class="menuItem"> <a href="../../index.html">Home</a>
+</li>
+
+
+ <li class="menuItem"> <a href="../../license.html">License</a>
+</li>
+
+
+ <li class="menuItem"> <a href="http://apache.org">ASF</a>
+</li>
+
+
+ <li class="menuItem"> <a href="../../contribution_policy.html">Contribution Policy</a>
+</li>
+
+
+ <li class="menuItem"> <a href="../../downloads.html">Downloads</a>
+</li>
+
+
+ <li class="menuItem"> <a href="../../faq.html">FAQ</a>
+</li>
+
+
+
+ </ul>
+ <p class="menuItem"><strong>Community</strong></p>
+ <ul>
+ <li class="menuItem"> <a href="../../get-involved.html">Get Involved</a>
+</li>
+
+
+ <li class="menuItem"> <a href="../../contributors.html">Who we are</a>
+</li>
+
+
+ <li class="menuItem"> <a href="../../mailing.html">Mailing Lists</a>
+</li>
+
+
+ <li class="menuItem"> <a href="http://issues.apache.org/jira/browse/HARMONY">Bug Tracker</a>
+</li>
+
+
+ <li class="menuItem"> <a href="../../related.html">Other Projects</a>
+</li>
+
+
+
+ </ul>
+ <p class="menuItem"><strong>Development</strong></p>
+ <ul>
+ <li class="menuItem"> <a href="../../svn.html">Source Code</a>
+</li>
+
+
+ <li class="menuItem"> <a href="../../quickhelp_contributors.html">Getting Started</a>
+</li>
+
+
+ <li class="menuItem"> <a href="../../roadmap.html">Project Roadmap</a>
+</li>
+
+
+ <li class="menuItem"> <a href="../../issue_resolution_guideline.html">Resolution Guideline</a>
+</li>
+
+
+ <li class="menuItem"> <a href="../../performance.html">Performance</a>
+</li>
+
+
+
+ </ul>
+ <p class="menuItem"><strong>Documentation</strong></p>
+ <ul>
+ <li class="menuItem"> <a href="../../sitemap.html">Sitemap</a>
+</li>
+
+
+ <li class="menuItem"> <a href="http://wiki.apache.org/harmony">Wiki</a>
+</li>
+
+
+ <li class="menuItem"> <a href="../../hdk.html">HDK</a>
+</li>
+
+
+ <li class="menuItem"> <a href="../../subcomponents/drlvm/index.html">DRLVM</a>
+</li>
+
+
+ <li class="menuItem"> <a href="../../subcomponents/classlibrary/index.html">Class Library</a>
+</li>
+
+
+ <li class="menuItem"> <a href="../../subcomponents/buildtest/index.html">Build-test Framework</a>
+</li>
+
+
+
+ </ul>
+ </td>
+ <td width="80%" valign="top"><a name="top"></a>
+ <h1>
+ <a name="Jitrino.OPT Internal Profiler Tool">Jitrino.OPT Internal Profiler Tool</a>
+ </h1>
+ <ol id="TOC">
+ <li><a href="#About This Document">About This Document</a></li>
+ <li><a href="#Overview">Overview</a></li>
+ <li><a href="#Configuring the Profiler">Configuring the Profiler</a>
+ <ol><li><a href="#Available Global Parameters">Available Global Parameters</a></li>
+ <li><a href="#Counters">Counters</a></li>
+ <li><a href="#Re-using Filter Parameters">Re-using Filter Parameters between Counters</a></li>
+ </ol>
+ </li>
+ <li><a href="#Dumping of Counters">Dumping of Counters</a></li>
+ <li><a href="#Example of iprof Configuration File">Example of iprof Configuration File</a></li>
+ <li><a href="#Example of Profiler Output">Example of Profiler Output</a></li>
+ </ol>
+
+ <h2>
+ <a name="About This Document">About This Document</a>
+ </h2>
+
+ <p>This document defines the internal profiler tool (iprof) for <a href="JIT.html">Jitrino.OPT</a>
+code generator and describes how to use it.</p>
+
+
+ <h2>
+ <a name="Overview">Overview</a>
+ </h2>
+
+ <p>The internal profiler can instrument code so that per-method counters of <i>executed</i> (not just compiled)
+instructions can be dumped. Operation of iprof is configured in the <code>iprof.cfg</code>
+file, as described in this document. For sample iprof tool output, see the<a href="#ExampleOutput">example</a>.</p>
+ <p> To enable iprof, do the following:</p>
+ <ol>
+<li>Specify the following command-line option to DRLVM on startup:
+<pre>-XDjit.arg.codegen.iprof=on</pre></li>
+<li> Place the configuration file <code>iprof.cfg</code> in the same directory
+where you are starting DRLVM.</li>
+</ol>
+
+
+ <h2>
+ <a name="Configuring the Profiler">Configuring the Profiler</a>
+ </h2>
+
+ <p>The configuration file <code>iprof.cfg</code> consists of a list of global parameters
+and a list of counters, as defined in this section. For a sample iprof configuration,
+see the <a href="#ExampleConfig">example</a>.</p>
+ <h3><a name="Available Global Parameters" />Available Global Parameters</h3>
+ <pre>Config.PrintBBStats=false #(boolean)</pre>
+ <p>This parameter turns on statistics dumping for all basic blocks of a method.</p>
+ <h3><a name="Counters" />Counters</h3>
+ <p>Counters collect information about executed
+instructions defined by the filter.
+Counters have the following attributes:</p>
+ <ul>
+<li><em>Name</em> identifies the counter. This attribute is defined by the first
+line in a <code>[begin]/[end]</code> section starting with <code>Counter.</code>,
+and all symbols after it and up to the next period <code>.</code> or an
+equal mark <code>=</code> or <code>\n</code> constitute the name of the counter.</li>
+<li><em>Title</em> is the for the dumped column. [optional]</li>
+<li><em>Filter</em> lists properties of the instructions to count. You can define
+properties for the instruction (mnemonic, the number of operands), for a specific
+operand (for example, the area of placement) or include run-time information (for
+example, whether the call is a helper and the helper name). See the list of filter
+parameters below. <br />
+All filter parameters can be considered parts of an <code>AND</code> expression.
+You can also use the <code>IsOr</code> filter attribute to provide an <code>OR</code>
+operation for all filter parameters, for example:
+<br /><code>Counter.Name0.IsOr=true</code></li>
+</ul>
+ <p class="example">Example</p>
+ <pre>###########
+[begin]
+Counter.CALL.Mnemonic=CALL
+[end]
+
+[begin]
+Counter.AddCounter.Title=ADD_EAX_COUNTER
+Counter.AddCounter.Mnemonic=ADD
+Counter.AddCounter.Operand.0.RegName=EAX
+[end]
+###########</pre>
+ <p>All properties of an instruction correspond to names of entities of the Jitrino
+IA-32 code generator, for example:</p>
+ <pre>Mnemonic_CALL => CALL
+OpndKind_Mem => Mem</pre>
+ <dl>
+<dt>Operand attributes</dt>
+<dd>
+<code>Operand.OpNum Operand number (can be *)<br />
+Operand.OpNum.OpndRole Operand role<br />
+Operand.OpNum.OpndKind Operand kind<br />
+Operand.OpNum.RegName Register name<br />
+Operand.OpNum.MemOpndKind Memory operand kind</code>
+</dd>
+
+<dt> Instruction attributes</dt>
+<dd>
+<code>Mnemonic Instruction mnemonic<br />
+OperandNumber Number of operands</code>
+</dd>
+
+<dt> Run-time information attributes</dt>
+<dd>
+<code>RuntimeInfo.Kind Runtime information kind<br />
+RuntimeInfo.HelperID VM Helper identifier<br />
+RuntimeInfo.IntHelperName Internal helper name</code>
+</dd>
+
+<dt>Call instruction attributes </dt>
+<dd>
+<code>isNative<br />
+isStatic<br />
+isSynchronized<br />
+isNoInlining<br />
+isInstance<br />
+isFinal<br />
+isVirtual<br />
+isAbstract<br />
+isClassInitializer<br />
+isInstanceInitializer<br />
+isStrict<br />
+isRequireSecObject<br />
+isInitLocals<br />
+isOverridden</code>
+<p>The counter does not work for other instructions.</p>
+</dd>
+</dl>
+ <h3><a name="Re-using Filter Parameters" />Re-using Filter Parameters between Counters
+</h3>
+ <p>Filter parameters of a counter can be re-used and
+extended by another counter, for example:</p>
+ <pre>[begin]
+Counter.CALL_Inst.Mnemonic=CALL
+[end]
+[begin]
+Counter.I_HELPER_CALL=CALL_Inst
+Counter.I_HELPER_CALL.RuntimeInfo.Kind=InternalHelperAddress
+[end]</pre>
+ <p class="note">Warning</p>
+ <p class="notetext">Space Characters should not be used outside comments.</p>
+
+
+ <h2>
+ <a name="Dumping of Counters">Dumping of Counters</a>
+ </h2>
+
+ <p>The iprof tool
+creates the file iprof.stat on exit of
+a DRLVM session in the directory where DRLVM was started. Tabbed text format can
+ be edited by spreadsheets.</p>
+
+
+ <h2>
+ <a name="Example of iprof Configuration File">Example of iprof Configuration File</a>
+ </h2>
+
+ <a name="ExampleConfig" />
+ <p>This is an example of the Jitrino.OPT internal profiler configuration.</p>
+ <pre>Config.PrintBBStats=true
+[begin]
+#for counting of all instructions you can specify any word as Mnemonic
+Counter.Insts.Mnemonic=Any
+[end]
+
+#hardcoded counters with only parameter "title"
+###############################################
+[begin]
+#Size of java bytecode of a method
+Counter.ByteCodeSize
+[end]
+#
+[begin]
+#Number of execution times of the hottest basic block of a method
+Counter.MaxBBExec
+[end]
+[begin]
+##ID nuber of the hottest basic block
+Counter.HottestBBNum
+[end]
+#
+[begin]
+##Number of exception handlers of a method
+Counter.ExcHandlersNum
+[end]
+#
+[begin]
+#Number of calls of a method
+Counter.MethodExec
+Counter.MethodExec.Title=Number of calls of a method
+[end]
+#
+[begin]
+#Basic block execution count
+Counter.BBExec
+[end]
+################################################
+[begin]
+Counter.OpNum.OpndNumber=3
+[end]
+[begin]
+#count instructions with memory access in first five operands
+Counter.MemOpnd.IsOR=true
+Counter.MemOpnd.Operand.*.OpndKind=Mem
+#Counter.MemOpnd.Operand.1.OpndKind=Mem
+[end]
+[begin]
+Counter.UseOpnd.Operand.0.OpndRole=Use
+[end]
+[begin]
+Counter.EAXOpnd.Operand.0.RegName=EAX
+[end]
+[begin]
+Counter.HeapOpnd.Operand.0.MemOpndKind=Heap
+[end]
+[begin]
+Counter.Method.isNative=true
+Counter.Method.isStatic=true
+Counter.Method.isSynchronized=true
+Counter.Method.isNoInlining=true
+Counter.Method.isInstance=true
+Counter.Method.isFinal=true
+Counter.Method.isVirtual=true
+Counter.Method.isAbstract=true
+Counter.Method.isClassInitializer=true
+Counter.Method.isInstanceInitializer=true
+Counter.Method.isStrict=true
+Counter.Method.isRequireSecObject=true
+Counter.Method.isInitLocals=true
+Counter.Method.isOverridden=true
+[end]
+
+[begin]
+Counter.CALL.Mnemonic=CALL
+[end]
+[begin]
+Counter.I_HELPER_CALL=CALL
+Counter.I_HELPER_CALL.RuntimeInfo.Kind=InternalHelperAddress
+[end]
+[begin]
+Counter.HELPER_CALL=CALL
+Counter.HELPER_CALL.RuntimeInfo.Kind=HelperAddress
+Counter.HELPER_CALL.RuntimeInfo.HelperID=LdString
+[end]</pre>
+
+
+ <h2>
+ <a name="Example of Profiler Output">Example of Profiler Output</a>
+ </h2>
+
+ <p>This is a fragment of a sample <code>stat</code> file that iprof produces.</p>
+ <a name="ExampleOutput" />
+ <pre>Method name Insts ByteCodeSize MaxBBExec HottestBBNum ExcHandlersNum Number of calls of a method BBExec CALL I_HELPER_CALL HELPER_CALL LDSTRING NEWOBJ_USINGVTABLE NEWVECTOR_USINGVTABLE NEWOBJ NEWVECTOR NEWMULTIARRAY OBJMONITORENTER ObjMonitorExit TYPEMONITORENTER TYPEMONITOREXIT THROW_KEEPSTACKTRACE THROW_SETSTACKTRACE THROW_LAZY NULLPTREXCEPTION ARRAYBOUNDSEXCEPTION ELEMTYPEEXCEPTION DIVIDEBYZEROEXCEPTION THROW_LINKINGEXCEPTION DIVI32 DIVU32 DIVI64 DIVU64 DIVSINGLE DIVDOUBLE REMI32 REMU32 REMI64 REMU64 REMSINGLE RemDouble MulI64 ShlI64 ShrI64 ShruI64 ConvStoI32 ConvStoI64 ConvDtoI32 ConvDtoI64 LdInterface Cast IsInstanceOf InitType IsValidElemType CharArrayCopy MANAGE_CALL MemOpnd Method
+java/lang/Thread.<clinit> 7 13 1 2 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 4 0
+java/lang/Object.<init> 6445 1 6445 2 0 6444 6445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+java/lang/Thread.<init> 2440 257 24 0 0 24 284 280 0 79 26 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 0 0 129 800 48 </pre>
+
+ <p><a href="#top">Back to top</a></p>
+
+ </td>
+ </tr>
+
+ <!-- FOOTER -->
+ <tr><td colspan="2">
+ <hr noshade="" size="1"/>
+ </td></tr>
+ <tr><td colspan="2">
+ <div class="special"><em>
+ Copyright © 2003-2007, The Apache Software Foundation
+ </em></div>
+ </td></tr>
+ </table>
+ </body>
+ </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Propchange: harmony/standard/site/docs/subcomponents/drlvm/internal_profiler.html
------------------------------------------------------------------------------
svn:eol-style = native
Modified: harmony/standard/site/docs/subcomponents/drlvm/kernel_classes.html
URL: http://svn.apache.org/viewvc/harmony/standard/site/docs/subcomponents/drlvm/kernel_classes.html?view=diff&rev=535532&r1=535531&r2=535532
==============================================================================
--- harmony/standard/site/docs/subcomponents/drlvm/kernel_classes.html (original)
+++ harmony/standard/site/docs/subcomponents/drlvm/kernel_classes.html Sat May 5 07:37:18 2007
@@ -56,9 +56,9 @@
</td></tr></table>
</td>
<td align='RIGHT'>
- <a href="http://www.apachecon.com/2007/EU/index.html">
- <img src="http://www.apache.org/ads/ApacheCon/2007-europe-234x60.png"
- alt="ApacheCon Europe 2007" /></a>
+ <a href="http://www.us.apachecon.com/">
+ <img src="http://www.apache.org/ads/ApacheCon/2007-usa-234x60.png"
+ alt="ApacheCon US 2007" /></a>
</td>
</tr>
</table>
Propchange: harmony/standard/site/docs/subcomponents/drlvm/site.css
------------------------------------------------------------------------------
svn:eol-style = native
Modified: harmony/standard/site/docs/subcomponents/jchevm/index.html
URL: http://svn.apache.org/viewvc/harmony/standard/site/docs/subcomponents/jchevm/index.html?view=diff&rev=535532&r1=535531&r2=535532
==============================================================================
--- harmony/standard/site/docs/subcomponents/jchevm/index.html (original)
+++ harmony/standard/site/docs/subcomponents/jchevm/index.html Sat May 5 07:37:18 2007
@@ -56,9 +56,9 @@
</td></tr></table>
</td>
<td align='RIGHT'>
- <a href="http://www.apachecon.com/2007/EU/index.html">
- <img src="http://www.apache.org/ads/ApacheCon/2007-europe-234x60.png"
- alt="ApacheCon Europe 2007" /></a>
+ <a href="http://www.us.apachecon.com/">
+ <img src="http://www.apache.org/ads/ApacheCon/2007-usa-234x60.png"
+ alt="ApacheCon US 2007" /></a>
</td>
</tr>
</table>
Modified: harmony/standard/site/docs/subcomponents/stresstest/index.html
URL: http://svn.apache.org/viewvc/harmony/standard/site/docs/subcomponents/stresstest/index.html?view=diff&rev=535532&r1=535531&r2=535532
==============================================================================
--- harmony/standard/site/docs/subcomponents/stresstest/index.html (original)
+++ harmony/standard/site/docs/subcomponents/stresstest/index.html Sat May 5 07:37:18 2007
@@ -56,9 +56,9 @@
</td></tr></table>
</td>
<td align='RIGHT'>
- <a href="http://www.apachecon.com/2007/EU/index.html">
- <img src="http://www.apache.org/ads/ApacheCon/2007-europe-234x60.png"
- alt="ApacheCon Europe 2007" /></a>
+ <a href="http://www.us.apachecon.com/">
+ <img src="http://www.apache.org/ads/ApacheCon/2007-usa-234x60.png"
+ alt="ApacheCon US 2007" /></a>
</td>
</tr>
</table>
Modified: harmony/standard/site/docs/svn.html
URL: http://svn.apache.org/viewvc/harmony/standard/site/docs/svn.html?view=diff&rev=535532&r1=535531&r2=535532
==============================================================================
--- harmony/standard/site/docs/svn.html (original)
+++ harmony/standard/site/docs/svn.html Sat May 5 07:37:18 2007
@@ -56,9 +56,9 @@
</td></tr></table>
</td>
<td align='RIGHT'>
- <a href="http://www.apachecon.com/2007/EU/index.html">
- <img src="http://www.apache.org/ads/ApacheCon/2007-europe-234x60.png"
- alt="ApacheCon Europe 2007" /></a>
+ <a href="http://www.us.apachecon.com/">
+ <img src="http://www.apache.org/ads/ApacheCon/2007-usa-234x60.png"
+ alt="ApacheCon US 2007" /></a>
</td>
</tr>
</table>
Modified: harmony/standard/site/xdocs/stylesheets/site.vsl
URL: http://svn.apache.org/viewvc/harmony/standard/site/xdocs/stylesheets/site.vsl?view=diff&rev=535532&r1=535531&r2=535532
==============================================================================
--- harmony/standard/site/xdocs/stylesheets/site.vsl (original)
+++ harmony/standard/site/xdocs/stylesheets/site.vsl Sat May 5 07:37:18 2007
@@ -254,9 +254,9 @@
</td></tr></table>
</td>
<td align='RIGHT'>
- <a href="http://www.apachecon.com/2007/EU/index.html">
- <img src="http://www.apache.org/ads/ApacheCon/2007-europe-234x60.png"
- alt="ApacheCon Europe 2007" /></a>
+ <a href="http://www.us.apachecon.com/">
+ <img src="http://www.apache.org/ads/ApacheCon/2007-usa-234x60.png"
+ alt="ApacheCon US 2007" /></a>
</td>
</tr>
</table>