1   package test.performance;
2   
3   import org.codehaus.aspectwerkz.joinpoint.JoinPoint;
4   
5   public class InlineBench {
6       private int m_nrInvocations = 1000000000;
7   
8       public void run() {
9           long startTime = System.currentTimeMillis();
10          for (int i = 0; i < m_nrInvocations; i++) {
11              notAdvised();
12          }
13          long time = System.currentTimeMillis() - startTime;
14          double timePerInvocationNormalMethod = time / (double) m_nrInvocations;
15  
16          toAdvise();
17  
18          startTime = System.currentTimeMillis();
19          for (int i = 0; i < m_nrInvocations; i++) {
20              toAdvise();
21          }
22          time = System.currentTimeMillis() - startTime;
23          double timePerInvocation = time / (double) m_nrInvocations;
24          double overhead = timePerInvocation - timePerInvocationNormalMethod;
25          System.out.println("\nOverhead: " + overhead);
26      }
27  
28      public static void main(String[] args) {
29          new InlineBench().run();
30      }
31  
32      public void toAdvise() {
33      }
34  
35      public void notAdvised() {
36      }
37  
38      public static class Aspect {
39          public void before(JoinPoint jp) throws Throwable {
40          }
41      }
42  }