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 }