Open Java Project

          Keep it simple, Stupid, Less is more

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            20 Posts :: 0 Stories :: 12 Comments :: 0 Trackbacks

          AOP Benchmark

          1、性能測試的AOP或代理框架

          1)字節(jié)碼框架

          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、性能測試結(jié)果

          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

          -

           

          測試環(huán)境:Java HotSpot 1.4.2,Windows 2000 SP4,Pentium M 1.6 GHz1 G RAM

          posted on 2005-03-21 22:23 nelson_tu 閱讀(1005) 評論(0)  編輯  收藏 所屬分類: AOP

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 尖扎县| 工布江达县| 县级市| 即墨市| 肇州县| 蓬溪县| 简阳市| 巫溪县| 荔浦县| 越西县| 霍林郭勒市| 新安县| 阜新市| 博湖县| 永德县| 太仓市| 迁安市| 阳春市| 黄骅市| 眉山市| 平舆县| 建平县| 德江县| 二手房| 丰顺县| 改则县| 宝清县| 镇平县| 格尔木市| 安泽县| 淮北市| 永丰县| 琼海市| 万山特区| 库车县| 房山区| 龙里县| 临清市| 定远县| 汽车| 随州市|