<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      VBScript與JScript誰怕誰(5)

      [摘要]轉自: ChinaByte   第一組測試的結果如下表所示。表中的數值是在不同方案下1000次ASP頁面調用的平均執行時間,以秒計(每次執行ASP頁面時測試例程執行一次)。 方案 語言*** 字...
      轉自: ChinaByte


         第一組測試的結果如下表所示。表中的數值是在不同方案下1000次ASP頁面調用的平均執行時間,以秒計(每次執行ASP頁面時測試例程執行一次)。 方案  
      語言***  字符串翻轉*  字符串查找**  正則表達式模式匹配*  位移操作*  簡單數學計算*  復雜數學計算**  
      VB - VB  2.245  2.038  4.452  2.200  2.173  2.151  
      JS - JS  2.690  2.214  2.635  2.166  2.288  2.313  
      VB - JS  3.522  -  3.430  3.035  -  3.178  
      JS - VB  3.185  -  5.368  3.103  -  3.004  
      *運行96次,其中:24次是VBScript測試工具頁面、IIS默認腳本語言VBScript;24次是JScript測試工具頁面、IIS默認腳本語言VBScript;24次是VBScript測試工具頁面、IIS默認腳本語言JScript;還有24次是JScript測試工具頁面、IIS默認腳本語言JScript。為了減小次序帶來的影響,第一、三、四、六測試例程的方案所運行的次序每次都經過改變。上表所顯示的時間是96次運行的平均時間。所有細節數據都可以在下載包的data.xls文件內找到。

      **使用VBScript測試工具頁面運行24次,IIS腳本語言設置成VBScript(沒有運行其他的測試工具頁面和默認腳本語言的組合,因為在最初的運行中它們沒有顯示出任何次序或時間差異上的影響)。

      ***VB代表VBScript,JS代表JScript。兩種語言中的前一種是頁面的基本語言,第二種是內嵌代碼所用的語言。內嵌代碼不用于不需要使用它的場合。



         大多數測試結果的含義都非常明顯,但應注意兩個可能令人驚奇的結果。我們知道,JScript通過String對象的方法處理正則表達式,具有更好的靈活性,而VBScript需要實例化RegExp對象的開銷。但令人驚奇的是,完全用VBScript編寫的代碼比以VBScript為基本語言、用內嵌JScript函數完成模式匹配操作的代碼要慢。顯然,實例化VBScript的RegExp對象需要非常可觀的時間開銷。

         第二個令人驚奇的地方是,雖然事實證明JScript的位操作總是要比VBScirpt的快,但在這些測試中兩者的時間差異非常小。

         第二組測試的結果如下表所示。表中的數值表示不同方案下單個ASP頁面的平均執行時間,以秒計(每執行一次ASP頁面,測試例程運行多次)。 方案  
      語言**  字符串翻轉(1)  字符串搜索(3)  正則表達式模式匹配(2)  位移操作(3)  簡單數學計算(1)  復雜數學計算(3)  數組初始化(1)  記錄集遍歷(4)  
      VB - VB  0.120  0.346  2.250  0.200  0.287  0.328  2.182  0.524  
      JS - JS  2.589  0.998  0.138  0.036  0.426  0.499  9.120  0.641  
      VB - JS  3.066  -  0.221  0.890  -  1.310  -  -  
      JS - VB  0.472  -  2.363  0.769  -  0.671  -  -  
      *每種情形用VBScript測試工具頁面運行24次,IIS的默認腳本語言是VBScript(沒有運行其他的測試工具頁面和IIS默認腳本語言組合,因為在最初的運行中它們沒有顯示出任何次序或時間差異上的影響)。為了減小次序帶來的影響,第一、三、四、六測試例程的方案所運行的次序每次都經過改變。上表所顯示的是24次運行的平均時間,所有細節數據都可以在下載包的data.xls內找到。

      **VB代表VBScript,JS代表JScript。兩種語言中的前一種是頁面的基本語言,第二種是內嵌代碼所用的語言。內嵌代碼不用于不需要使用它的場合。

      100,000 次迭代
      1,000次迭代
      10,000次迭代
      830個記錄的外部循環,14個字段的內部循環(總共11,620次迭代)



         這些測試結果更清楚地證實了兩種語言的區別所在。從數學計算的結果可以看出,VBScript在這方面要比JScript快——除了位移操作之外(JScript本身支持位移操作,而VBScript不支持)。

         兩種語言最顯著的區別在于字符串翻轉、字符串搜索和數組初始化,所有這些測試項目中VBScript都占優勢。

         字符串翻轉操作是VBScript本身所支持的,在該項測試中兩者差別尤其明顯。在這個測試中,兩者的差異之大使得采用內嵌VBScript StrReverse()函數也要比用JScript編寫該函數快。

         在那些數據改動非常頻繁使得手工構造數據失去現實意義的應用中,數據庫記錄集遍歷是一種相當常見操作,因此,上述測試結果中VBScript和JScript在記錄集遍歷上的差異可能會給那些認為JScript優于VBScript的人一些警示。然而,這種執行時間上的差異也可以用如下事實來辯解,即我們為記錄集中的每個記錄分別實例化了一個Enumerator對象(總共達到了830次。

         從第一組測試的結果中已經可以看出,正則表達式模式匹配是JScript絕對優于VBScript的一個地方,所以這一組的測試結果并不令人奇怪。這里的測試結果證實了上一組的測試結果,但差異程度有所放大。






      日韩精品一区二区三区高清