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.2,Windows 2000 SP4Pentium M 1.6 GHz1 G RAM

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

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


          網站導航:
           
          主站蜘蛛池模板: 林州市| 太谷县| 佛山市| 扶绥县| 水富县| 横山县| 监利县| 梅河口市| 巴东县| 昌图县| 宜昌市| 南川市| 盘山县| 武陟县| 徐闻县| 桂平市| 铜川市| 牟定县| 万源市| 山丹县| 达日县| 黄骅市| 辽宁省| 英山县| 金山区| 兴隆县| 纳雍县| 永嘉县| 阜城县| 广汉市| 固镇县| 永年县| 滨州市| 武宁县| 商洛市| 奎屯市| 邳州市| 定日县| 万载县| 潮州市| 雷山县|