隨筆-57  評論-129  文章-0  trackbacks-0

          裝載效率測試
          測試頁面見:test/load-eff-test.html

          為了測試結果更顯客觀,我選擇了第三方類庫的裝載測試:
          'com.yahoo.yui.*',
          'net.conio.prototype.*',
          'net.fckeditor.*',
          'org.jquery.*',
          'us.aculo.script.*'
          共22個腳本文件(對于JSI來說還有諾干包定義文件)。

          FF2:  
          標記導入時間(原始方式):
          469,469,1047,484,484,437,469,484  
          同步導入時間:
          469,453,484,437,469,453  
          延遲導入時間:
          921,765,891,906,953,906,922  
          異步導入時間:
          859,1093,1141,1031,1641,1125,1078,1093,1157,1141  
            
          IE7:  
          標記導入時間:
          343,297,297,344,328,328  
          同步導入時間:
          281,250,235,235,234,234,250,265  
          延遲導入時間:
          922,422,406,391,391,391,407,391  
          異步導入時間:
          625,672,672,703,703,672,703,704,688  



          運行時間測試
          測試腳本管理后對新能的影響,影響因素有:全局變量和局部變量的查找時間差異,eval的腳本和script標記直接插入的腳本的可能差異。(這 個測試不具有普遍性,這里我主要是測試了一下瀏覽器對局部變量的訪問速度【JSI里面訪問變量都是裝載單元內的局部變量】,所以故意測試了大量局部變量訪 問的操作)
          測試頁面見:test/runtime-eff-test.html

          FF2:  
          jsiTime:        
          845,    927,    598,    687,    764,  
          scriptTime:     
          1432,   950,    1305,   1278,   1219,  
          evalTime:       
          1644,   1373,   1322,   1186,   1360,  
          execTime:       
          0  
          dscriptTime:    
          1432,   950,    1305,   1278,   1219,     
            
          IE7:  
          jsiTime:    
          295,    205,    157,    315,    156,    142,    375,    328,    172,    172,      
          scriptTime: 
          172,    172,    189,    140,    251,    187,    217,    203,    172,    234,      
          evalTime:   
          236,    249,    139,    172,    281,    171,    172,    108,    436,    359,      
          execTime:   
          219,    234,    314,    157,    220,    266,    204,    234,    187,    95,   
          dscriptTime:    
          187,    265,    294,    326,    187,    328,     141,   221,    127,    249,       



          上面的基數太小,隨機誤差太大,調整原始數據從新測試一遍jsiTime和scriptTime

          jsiTime:    576,    658,    688,    703,    611,    608,          
          scriptTime: 
          706,    608,    562,    547,    655,    657,    


          總結:

          JSI的裝載性能表現不錯,完全不必計較。
          托管代碼的運行性能也沒有太大區別,不過,因為。JSI托管腳本使用的變量基本都是裝載單元內的局部變量(本地聲明變量,或者外部依賴的引用或值拷貝),所以,對于FF這類局部變量比全局變量訪問速度快不少的解釋引擎,JSI托管腳本可以達到更好的運行效率。

          有個奇怪的問題,JSI在裝載類庫時,與傳統模式相比,肯定增加了些額外的運算,但是,貌似JSI的同步裝載模式下,裝載腳本的耗時比傳統模式還少(IE 表現明顯)?為何?
          歡迎大家對這奇怪的現象提出自己的猜想,我稍后貼出我對此問題的看法^_^

          posted on 2007-06-22 15:01 金大為 閱讀(705) 評論(0)  編輯  收藏 所屬分類: JSIJavaScript
          主站蜘蛛池模板: 阿巴嘎旗| 新竹县| 兴隆县| 布尔津县| 长乐市| 泽普县| 太保市| 郴州市| 滁州市| 竹溪县| 闻喜县| 务川| 忻城县| 遵义县| 柳河县| 安顺市| 包头市| 清镇市| 买车| 措勤县| 苏尼特右旗| 闽侯县| 吉首市| 安新县| 上林县| 乌恰县| 苏尼特右旗| 石河子市| 浦东新区| 榕江县| 惠水县| 曲水县| 观塘区| 岐山县| 乡城县| 湖南省| 恩平市| 广水市| 沂水县| 常州市| 青铜峡市|