隨筆-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
          主站蜘蛛池模板: 介休市| 九台市| 达拉特旗| 正镶白旗| 比如县| 龙胜| 北宁市| 河曲县| 静乐县| 旅游| 台南县| 江安县| 江津市| 朝阳县| 堆龙德庆县| 黎平县| 孝昌县| 高雄市| 会泽县| 乌拉特中旗| 武安市| 阳江市| 绥芬河市| 延川县| 吴桥县| 古田县| 清涧县| 新竹市| 锡林浩特市| 西充县| 弥勒县| 合山市| 酒泉市| 新民市| 多伦县| 沧州市| 道孚县| 平乐县| 葫芦岛市| 娄烦县| 尼玛县|