Mail Archive Home | fractal-commits List | March 2006 Index
| <-- Date Index --> | <-- Thread Index --> |
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
"Fractalized" 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
"AOKellized"
@@ -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> </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"> </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"> </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 --> |
Powered by MHonArc.
Copyright © 2006-2007, OW2 Consortium | contact | webmaster.