AOP Benchmark
1、性能测试的AOP或代理框架
(1)字节码框架
l AspectWerkz 1.0
l AspectWerkz 2.x
l AspectJ 1.2
l JBoss AOP 1.0
(2)代理框架
l Spring AOP 1.1.1
l cglib proxy 2.0.2
l dynaop 1.0beta
(3)AspectWerkz可扩展Aspect容器
l AspectJ
l AOP Alliance
l Spring AOP
2、性能测试结果
AWBench (ns/invocation)
Aspect
Werkz2.x
awproxy
Aspect
Werkz1.0
aspectj
jboss
spring
dynaop
cglib
ext:
aopalliance
ext:
spring
ext:
aspectj
before, args() target()
10
25
606
10
220
355
390
145
-
220
-
around x 2, args() target()
80
85
651
50
290
436
455
155
465
476
-
before
15
20
520
15
145
275
320
70
-
40
10
before, static info access
30
30
501
25
175
275
330
70
35
before, rtti info access
50
55
535
50
175
275
335
75
35
after returning
10
20
541
10
135
285
315
85
-
45
15
after throwing
3540
3870
6103
3009
5032
6709
8127
-
3460
before + after
20
30
511
20
160
445
345
80
-
35
20
before, args() primitives
10
20
555
10
195
350
375
145
210
before, args() objects
5
25
546
10
185
325
345
115
200
around
60
95
470
10
225
315
75
-
90
around, rtti info access
70
70
520
50
140
250
340
80
70
70
-
around, static info access
80
90
486
25
135
245
330
75
80
80
-
下面的表格以AspectWerkz 2.0.RC2-snapshot 作为参考标准:
AWBench (relative %)
Aspect
Werkz2.x
awproxy
Aspect
werkz1.0
aspectj
jboss
spring
dynaop
cglib
ext:
aopalliance
ext:
spring
ext:
aspectj
before, args() target()
1 x
2.5 x
60.6 x
1 x
22 x
35.5 x
39 x
14.5 x
-
22 x
-
around x 2, args() target()
1 x
1 x
8.1 x
0.6 x
3.6 x
5.4 x
5.6 x
1.9 x
5.8 x
5.9 x
-
before
1 x
1.3 x
34.6 x
1 x
9.6 x
18.3 x
21.3 x
4.6 x
-
2.6 x
0.6 x
before, static info access
1 x
1 x
16.7 x
0.8 x
5.8 x
9.1 x
11 x
2.3 x
1.1 x
before, rtti info access
1 x
1.1 x
10.7 x
1 x
3.5 x
5.5 x
6.7 x
1.5 x
0.7 x
after returning
1 x
2 x
54.1 x
1 x
13.5 x
28.5 x
31.5 x
8.5 x
-
4.5 x
1.5 x
after throwing
1 x
1 x
1.7 x
0.8 x
1.4 x
1.8 x
2.2 x
-
0.9 x
before + after
1 x
1.5 x
25.5 x
1 x
8 x
22.2 x
17.2 x
4 x
-
1.7 x
1 x
before, args() primitives
1 x
2 x
55.5 x
1 x
19.5 x
35 x
37.5 x
14.5 x
21 x
before, args() objects
1 x
5 x
109.2 x
2 x
37 x
65 x
69 x
23 x
40 x
around
1 x
1.5 x
7.8 x
0.1 x
3.7 x
5.2 x
1.2 x
-
1.5 x
around, rtti info access
1 x
1 x
7.4 x
0.7 x
2 x
3.5 x
4.8 x
1.1 x
1 x
1 x
-
around, static info access
1 x
1.1 x
6 x
0.3 x
1.6 x
3 x
4.1 x
0.9 x
1 x
1 x
-
测试环境:Java HotSpot 1.4.2,Windows 2000 SP4,Pentium M 1.6 GHz,1 G RAM