Open Java Project

          Keep it simple, Stupid, Less is more

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

          AOP Benchmark

          1、性能測(cè)試的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可擴(kuò)展Aspect容器

          l         AspectJ

          l         AOP Alliance

          l         Spring AOP

           

          2、性能測(cè)試結(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 作為參考標(biāo)準(zhǔn):

          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

          -

           

          測(cè)試環(huán)境:Java HotSpot 1.4.2,Windows 2000 SP4Pentium M 1.6 GHz,1 G RAM

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

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 拉萨市| 钟山县| 随州市| 鹿泉市| 土默特左旗| 习水县| 马山县| 青海省| 安义县| 师宗县| 中宁县| 怀柔区| 肃北| 凤翔县| 沾益县| 马龙县| 大冶市| 徐汇区| 托克托县| 舟山市| 林芝县| 平果县| 太仓市| 留坝县| 淳安县| 碌曲县| 肥东县| 广灵县| 旌德县| 攀枝花市| 法库县| 自治县| 静宁县| 乌拉特后旗| 雅江县| 思茅市| 湄潭县| 巫山县| 财经| 临潭县| 三台县|