<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html> <head>
<title>AspectJ 1.8.12 Readme</title>
<style type="text/css">
<!--
  P   { margin-left:  20px; }
  PRE { margin-left:  20px; }
  LI  { margin-left:  20px; }
  H4  { margin-left:  20px; }
  H3  { margin-left:  10px; }
-->
</style>
</head>

<body>
<div align="right"><small>
&copy; Copyright 2017 Contributors.
All rights reserved.
</small></div>

<h1>AspectJ 1.8.12 Readme</h1>

<p>This is a small release that includes a backport of some 1.9.0 work that improves
the performance of Spring AOP (or any system consuming AspectJ in a similar way to Spring). 

<p>Dave Syer recently created a series of benchmarks for checking the speed of Spring-AspectJ: 
<tt><a href="https://github.com/dsyer/spring-boot-aspectj">https://github.com/dsyer/spring-boot-aspectj</a></tt>

<p>Here we can see the numbers for AspectJ 1.8.11 (on an older Macbook Pro):

<pre><code>
Benchmark                 (scale)  Mode  Cnt   Score   Error  Units
StartupBenchmark.ltw          N/A  avgt   10   2.656 ~ 0.166   s/op
StartupBenchmark.ltw_100      N/A  avgt   10   2.618 ~ 0.063   s/op
StartupBenchmark.spring     v0_10  avgt   10   2.071 ~ 0.044   s/op
StartupBenchmark.spring     v1_10  avgt   10   2.210 ~ 0.058   s/op
StartupBenchmark.spring    v1_100  avgt   10   2.260 ~ 0.068   s/op
StartupBenchmark.spring    v10_50  avgt   10   2.933 ~ 0.039   s/op
StartupBenchmark.spring    v20_50  avgt   10   3.832 ~ 0.094   s/op
StartupBenchmark.spring   v20_100  avgt   10   3.959 ~ 0.047   s/op
StartupBenchmark.spring     a0_10  avgt   10   2.073 ~ 0.028   s/op
StartupBenchmark.spring     a1_10  avgt   10   2.729 ~ 0.061   s/op
StartupBenchmark.spring    a1_100  avgt   10   2.750 ~ 0.029   s/op
StartupBenchmark.spring    a10_50  avgt   10   7.153 ~ 0.075   s/op
StartupBenchmark.spring   a10_100  avgt   10   7.152 ~ 0.059   s/op
StartupBenchmark.spring    a20_50  avgt   10  11.430 ~ 0.105   s/op
StartupBenchmark.spring   a20_100  avgt   10  11.497 ~ 0.162   s/op
</code></pre>

<p>So this is the average *startup time* of an app affected by aspects applying to the beans involved.
Where numbers are referenced the first is the number of aspects/pointcuts and the second
is the number of beans.  The 'a' indicates an annotation based pointcut vs a non-annotation 
based pointcut ('v'). Notice things are much worse for annotation based pointcuts.  At 20
pointcuts and 50 beans the app is 9 seconds slower to startup.
<br>

<p>In AspectJ 1.8.12 and 1.9.0.RC1 some work has been done here. The key change is to recognize that the use
of annotations with runtime retention is much more likely than annotations with class level
retention. Retrieving annotations with class retention is costly because we must open the
bytes for the class file and dig around in there (vs runtime retention which are immediately
accessible by reflection on the types). In 1.8.11 the actual type of the annotation involved
in the matching is ignored and the code will fetch *all* the annotations on the type/method/field
being matched against. So even if the match is looking for a runtime retention annotation, we
were doing the costly thing of fetching any class retention annotations. In 1.8.12/1.9.0.RC1
we take the type of the match annotation into account - allowing us to skip opening the classfiles
in many cases. There is also some deeper work on activating caches that were not previously
being used correctly but the primary change is factoring in the annotation type.

<p>What difference does that make?

AspectJ 1.8.12:
<pre><code>
Benchmark                 (scale)  Mode  Cnt  Score   Error  Units
StartupBenchmark.ltw          N/A  avgt   10  2.620 ~ 0.130   s/op
StartupBenchmark.ltw_100      N/A  avgt   10  2.567 ~ 0.038   s/op
StartupBenchmark.spring     v0_10  avgt   10  2.044 ~ 0.027   s/op
StartupBenchmark.spring     v1_10  avgt   10  2.195 ~ 0.026   s/op
StartupBenchmark.spring    v1_100  avgt   10  2.237 ~ 0.039   s/op
StartupBenchmark.spring    v10_50  avgt   10  2.774 ~ 0.038   s/op
StartupBenchmark.spring    v20_50  avgt   10  3.488 ~ 0.116   s/op
StartupBenchmark.spring   v20_100  avgt   10  3.642 ~ 0.080   s/op
StartupBenchmark.spring     a0_10  avgt   10  2.067 ~ 0.034   s/op
StartupBenchmark.spring     a1_10  avgt   10  2.159 ~ 0.030   s/op
StartupBenchmark.spring    a1_100  avgt   10  2.207 ~ 0.020   s/op
StartupBenchmark.spring    a10_50  avgt   10  2.471 ~ 0.031   s/op
StartupBenchmark.spring   a10_100  avgt   10  2.517 ~ 0.045   s/op
StartupBenchmark.spring    a20_50  avgt   10  2.842 ~ 0.049   s/op
StartupBenchmark.spring   a20_100  avgt   10  2.916 ~ 0.145   s/op
</code></pre>

<p>Look at the a20_100 case - instead of impacting start time by 9 seconds, it impacts it by 1 second.

<ul>
<li>1.8.12 available 20-Oct-2017
</ul>

</body>
</html>
