OW2 Consortium
Search OW2 Mail Archive: 

Advanced Search - Powered by Google


Mail Archive Home | fractal-commits List | March 2006 Index

<--  Date Index  --> <--  Thread Index  -->

CVS update of aokell/src/org/objectweb/fractal/aokell (overview.html)


    Date: Thursday, March 30, 2006 @ 11:15:15
  Author: seintur
    Path: /cvsroot/fractal/aokell/src/org/objectweb/fractal/aokell

Modified: overview.html

"Performance Measurements" section updated with new comments on the figures.
Typos.


---------------+
 overview.html |   77 +++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 60 insertions(+), 17 deletions(-)


Index: aokell/src/org/objectweb/fractal/aokell/overview.html
diff -u aokell/src/org/objectweb/fractal/aokell/overview.html:1.11 
aokell/src/org/objectweb/fractal/aokell/overview.html:1.12
--- aokell/src/org/objectweb/fractal/aokell/overview.html:1.11  Wed Mar 29 
20:57:15 2006
+++ aokell/src/org/objectweb/fractal/aokell/overview.html       Thu Mar 30 
11:15:15 2006
@@ -786,7 +786,7 @@
 a test suite known as JACBenchmark, and the performance tests of 
 Julia.</p>
 
-<p>The purpose of our benchmark is to evaluate the overhead of running a 
Fractalized application with AOKell. The purpose is not to evaluate the time 
+<p>The purpose of our benchmark is to evaluate the overhead of running a 
&quot;Fractalized&quot; application with AOKell. The purpose is not to 
evaluate the time 
 needed to compile an AOKell application, nor to evaluate the time taken by 
 control operations (such as starting or stopping a component). The times we 
are 
 measuring are the ones experienced by an end user who is running an 
&quot;AOKellized&quot; 
@@ -813,34 +813,76 @@
 performances of two Julia optimization levels, NONE and MERGEALL, are also 
 measured. The optimization level of Julia 
 known as MERGEALL consists in merging the content, the controller and the 
-interceptors. We have also measured the cost of the interception performed 
by 
+interceptors. We also measure the cost of the interception performed by 
 the frameworks.</p>
 
+<table>
+<tr>
+<td valign="top">
+
 <table border="1">
 <tr><td colspan="2" rowspan="2"><b>Implementation</b></td>
   <td colspan="2" align="center">
   <p align="center"><b>Time (in ms)</b></td></tr>
-<tr><td align="center">interception</td><td align="center">no 
interception</td></tr>
-<tr><td colspan="2">Pure Java 1.5.0</td><td align="center"><b>172</b></td>
-  <td align="center">122</td></tr>
+<tr><td align="center">lifecycle</td><td align="center">no 
lifecycle</td></tr>
 <tr><td rowspan="2">AOKell 2.0</td><td>AspectJ</td><td 
align="center">443</td>
   <td align="center">212</td></tr>
 <tr><td>Spoon</td><td align="center"><b>221</b></td><td 
align="center">212</td></tr>
 <tr><td rowspan="2">Julia 2.1.1</td><td>NONE</td><td align="center">484</td>
   <td align="center">234</td></tr>
 <tr><td>MERGEALL</td><td align="center">396</td><td 
align="center">234</td></tr>
-<tr><td colspan="2">AspectJ 1.2.1</td><td align="center">206</td>
+</table>
+
+</td>
+
+<td> &nbsp; </td>
+
+<td valign="top">
+
+<table border="1">
+<tr><td rowspan="2"><b>Implementation</b></td>
+  <td colspan="2" align="center">
+  <p align="center"><b>Time (in ms)</b></td></tr>
+<tr><td align="center">interception</td><td align="center">no 
interception</td></tr>
+<tr><td>Pure Java 1.5.0</td><td align="center"><b>172</b></td>
+  <td align="center">122</td></tr>
+<tr><td>AspectJ 1.2.1</td><td align="center">206</td>
   <td align="center">&nbsp;</td></tr>
-<tr><td colspan="2">JBoss AOP 1.1.1</td><td align="center">1046</td>
+<tr><td>JBoss AOP 1.1.1</td><td align="center">1046</td>
   <td align="center">&nbsp;</td></tr>
 </table>
 
+
+</td>
+</tr>
+</table>
+
+
 <p><b>Tab 1: Cost of invoking and executing an operation (x 
8,000,000).</b></p>
 
-<p>The performances of AOKell 2.0 when the glue is implemented with AspectJ 
are 
-comparable to those of Julia 2.1.1. When the 
-glue is implemented with Spoon, the performances are better than those of 
Julia 
-or those of AOKell with AspectJ..</p>
+<p>The left part of Table 1 compares the figures obtained with AOKell with 
those 
+obtained with Julia. Two series of figures are given: with the lifecycle 
+activated or not. Let remind that this controller performs some interception 
on 
+incoming calls to implement the lifecycle policy.</p>
+
+<p>A difference between AOKell and Julia can be witnessed when the lifecycle 
is 
+activated. The main reason for this difference lies in the semantics 
implemented 
+by the lifecycle controller. With AOKell, this controller rejects calls on 
+stopped components. With Julia, the lifecycle controller blocks calls on 
stopped 
+components and counts the number of executing methods (to avoid removing a 
+component which is still executing some requests.) This semantics implies 
some 
+additional treatments, among others the management of shared data which 
needs to 
+be synchronized. The cost of these treatments leads to the difference 
witnessed 
+in Table 1.</p>
+
+<p>Another difference which is worth mentioning concerns the figures for 
AOKell with Spoon and AOKell with AspectJ. The results  show that  Spoon 
performs better than  AspectJ when 
+the lifecycle control comes into play. The reason is that Spoon, being 
+a general purpose transformation tool, allows optimizing more aggressively 
than 
+AspectJ, the transformed code. For example, the interception code can be 
+inserted directly into the intercepted methods. By contrast, AspectJ inserts 
a 
+call to the interception code. This indirection leads to a additional method 
+call for every component operation invocation, and thus, multiply by 2 the 
cost 
+of invoking an operation.</p>
 
 <p>Notice that the performance of AOKell are the same whatever the chosen 
 values are for the features loggable, membrane and fcinterface. Indeed, 
these 
@@ -849,14 +891,15 @@
 cost, in terms of business method execution, in using componentized 
membranes 
 compared to using membranes with plain old Java objects.</p>
 
-<p>As a matter of comparison, Table 1 gives the execution time of the same 
+<p>As a matter of comparison, the right part Table 1 gives the execution 
time of the same 
 benchmark in pure Java (no Fractal components), in AspectJ 1.2.1 and in 
JBoss 
 AOP 1.1.1. For the first case, a proxy instance is inserted in front of the 
 server objects to evaluate the interception cost. For the last two cases, 
 AspectJ and JBoss AOP, an empty around advice is woven on 
 the server object. Compared to the Java version, the AOKellization with 
Spoon 
 introduces an overhead of 28% (221ms vs. 172ms), which is in our opinion 
-bearable given the benefits brought by the component orientation.</p>
+bearable given the benefits brought by the component orientation of Fractal 
and 
+AOKell.</p>
 
 <h2><a name="writing"></a>8 Writing new Control Membranes</h2>
 
@@ -873,10 +916,10 @@
 
 <p>The whole source code of this tutorial, both for Section 8.1 and Section 
8.2, 
 can be downloaded in a single <a href="../examples/tutorial.zip">zip 
file</a>. 
-It is recommanded to download the
+It is recommended to download the
 <a 
href="http://forge.objectweb.org/project/showfiles.php?group_id=22&release_id=1439";>
 binary distribution of AOKell</a> and to unzip the tutorial archive in the 
-installation directoy of AOKell. A tutorial subdirectory will be created.</p>
+installation directory of AOKell. A tutorial subdirectory will be 
created.</p>
 
 <h3>8.1 POJO controllers</h3>
 
@@ -1119,7 +1162,7 @@
 version, two points can be mentioned:</p>
 
 <ul>
-  <li>The compctrl reference transmited to setFcCompCtrl is the reference of 
the 
+  <li>The compctrl reference transmitted to setFcCompCtrl is the reference 
of the 
   M2-level component controller (see Section <a 
href="#controllingControllers">Controlling the Controllers</a>) 
   and not the reference of the M1-level component controller as this is the 
case 
   with POJO controllers.</li>
@@ -1257,6 +1300,6 @@
 <a href="mailto:Nicolas.Pessemier@xxxxxxx";>Nicolas Pessemier</a>,
 <a href="mailto:thierry.coupaye@xxxxxxxxxxxxxxxxx";>Thierry Coupaye</a>.<br>
 </i>Last modified:
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%m/%d/%y" startspan 
-->03/28/06<!--webbot bot="Timestamp" endspan i-checksum="13122" -->.</p>
+<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%m/%d/%y" startspan 
-->03/30/06<!--webbot bot="Timestamp" endspan i-checksum="13002" -->.</p>
 </body>
 </html>
\ No newline at end of file



<--  Date Index  --> <--  Thread Index  -->

Reply via email to:

Powered by MHonArc.

Copyright © 2006-2007, OW2 Consortium | contact | webmaster.