Open Java Project

Keep it simple, Stupid, Less is more

BlogJava 首页 新随笔 联系 聚合 管理
  20 Posts :: 0 Stories :: 12 Comments :: 0 Trackbacks

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

3AspectWerkz可扩展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.2Windows 2000 SP4Pentium M 1.6 GHz1 G RAM

posted on 2005-03-21 22:23 nelson_tu 阅读(996) 评论(0)  编辑  收藏 所属分类: AOP

只有注册用户登录后才能发表评论。


网站导航: