Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

AWBench (ns/invocation)

aspectwerkz

awproxy

aspectwerkz_1_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

-

AWBench (ns/invocation)

aspectwerkz 2.x

aspectwerkz 1.x

aspectj

jboss

AW Proxy

spring

dynaop

cglib

ext:aopalliance

ext:spring

ext:aspectj

before, args() target()

10

576

10

215

25

591

386

135

-

210

-

around x 2, args() target()

85

641

45

290

85

681

456

150

461

461

-

before

10

476

15

130

20

526

325

75

-

40

10

before, static info access

30

480

20

130

35

520

305

75

-

40

-

before, rtti info access

50

506

50

135

55

526

330

70

-

35

-

after returning

10

475

10

165

15

535

325

80

-

40

15

after throwing

3360

5468

2984

5187

3660

-

6604

7991

-

-

3440

before + after

20

480

15

245

30

671

340

85

-

40

20

before, args() primitives

10

546

10

260

20

580

370

135

-

200

-

before, args() objects

5

540

15

185

20

561

350

105

-

195

-

around

60

470

10

125

60

460

310

75

70

70

85

around, static info access

90

480

25

125

90

481

330

75

70

70

-

around, rtti info access

85

506

50

140

85

495

345

85

70

75

-


This table provides the figures from the same bench where for each category AspectWerkz 2.0.RC2-snapshot is the reference.
The first line illustrates that for the most simple before advice, AspectWerkz is 13 times faster than JBoss AOP 1.0.

AWBench (relative %)

aspectwerkz

awproxy

aspectwerkz_1_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

-

AWBench (relative %)

aspectwerkz 2.x

aspectwerkz 1.x

aspectj

jboss

AW Proxy

spring

dynaop

cglib

ext:aopalliance

ext:spring

ext:aspectj

before, args() target()

1 x

57.6 x

1 x

21.5 x

2.5

59.1 x

38.6 x

13.5 x

-

21 x

-

around x 2, args() target()

1 x

7.5 x

0.5 x

3.4 x

1 x

8 x

5.3 x

1.7 x

5.4 x

5.4 x

-

before

1 x

47.6 x

1.5 x

13 x

2 x

52.6 x

32 x

7.5 x

-

4 x

1 x

before, static info access

1 x

16 x

0.6 x

4.3 x

1.1 x

17.3 x

10.1 x

2.5 x

-

1.3 x

-

before, rtti info access

1 x

10.1 x

1 x

2.7 x

1.1 x

10.5 x

6.6 x

1.4 x

-

0.7 x

-

after returning

1 x

47.5 x

1 x

16.5 x

1.5 x

53.5 x

32.5 x

8 x

-

4 x

1.5 x

after throwing

1 x

1.6 x

0.8 x

1.5 x

1 x

-

1.9 x

2.3 x

-

-

1 x

before + after

1 x

24 x

0.7 x

12.2 x

1.5 x

33.5 x

17 x

4.2 x

-

2 x

1 x

before, args() primitives

1 x

54.6 x

1 x

26 x

2 x

58 x

37 x

13.5 x

-

20 x

-

before, args() objects

1 x

108 x

3 x

37 x

112.2 x

70 x

21 x

-

39 x

-

around

1 x

7.8 x

0.1 x

2 x

1 x

7.6 x

5.1 x

1.2 x

1.2 x

1.2 x

1.4 x

around, static info access

1 x

5.3 x

0.2 x

1.3 x

1 x

5.3 x

3.6 x

0.8 x

0.7 x

0.8 x

-

around, rtti info access

1 x

5.9 x

0.5 x

1.6 x

1 x

5.8 x

4 x

1 x

0.8 x

0.8 x

-

Bench were run on a Java HotSpot 1.4.2, Windows 2000 SP4, Pentium M 1.6 GHz, 1 Go RAM.

...