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 閱讀(1005) 評論(0)  編輯  收藏 所屬分類: AOP

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


          網站導航:
           
          主站蜘蛛池模板: 长垣县| 黔南| 瑞丽市| 建始县| 原平市| 洱源县| 星座| 安庆市| 洪江市| 上犹县| 衡南县| 诸暨市| 长白| 奉新县| 海盐县| 马龙县| 马鞍山市| 保德县| 汝州市| 泽州县| 洛宁县| 秀山| 丰城市| 仙桃市| 历史| 赤峰市| 虎林市| 巫溪县| 宁陕县| 新闻| 兰考县| 遂川县| 扶绥县| 宜都市| 金川县| 磐安县| 延寿县| 北辰区| 通道| 延津县| 财经|