VBScript與JScript誰怕誰(4)
發(fā)表時間:2023-07-31 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]轉(zhuǎn)自: ChinaByte上面的第一、三、四、六幾種算法有一個共同特點:或者是其中一種語言獨具某個功能,或者在正則表達式匹配和距離計算中,兩種語言的差別非常大,足以成為一個很有意義的混合語言編程測試...
轉(zhuǎn)自: ChinaByte
上面的第一、三、四、六幾種算法有一個共同特點:或者是其中一種語言獨具某個功能,或者在正則表達式匹配和距離計算中,兩種語言的差別非常大,足以成為一個很有意義的混合語言編程測試項目。這就為我們測試這些算法增加了兩種方案:以VBScript作為基本語言調(diào)用內(nèi)嵌的JScript函數(shù);以JScript為基本語言調(diào)用內(nèi)嵌的VBScript函數(shù)。測試代碼舉例如下(測試方案:字符串翻轉(zhuǎn),以JScript為基本語言,VBScript內(nèi)嵌):
< %@Language=JScript% >
< SCRIPT language="VBScript" runat="Server" >
Function StrRevVB(strParm)
StrReverse(strParm)
End Function
< /SCRIPT >
< %
StrRevVB("String Reversal")
% >
所有其他例程都只包含語言本身提供的功能,這些例程只用純VBScript和純JScript版的代碼測試。換句話說,對于任何情形的混合語言編程合理性測試來說,這些例程的價值都不大。
第一組測試運行前六個例程,對于每一次運行,測試工具頁面都要進行1000次對包含測試例程的ASP頁面的調(diào)用(Server.Execute)。換句話說,如果某次運行調(diào)用了一個兩種腳本語言都編寫的頁面1000次,則調(diào)用ASP引擎和各個腳本引擎的開銷都達到1000次。雖然這種方法導(dǎo)致腳本引擎的開銷影響測試結(jié)果,但我們獲得的測試結(jié)果卻更能反映出實際應(yīng)用場合的效果。也就是說,雖然我們可以在單個頁面之內(nèi)完成1000次字符串翻轉(zhuǎn)之類的操作,但更接近實際的是將這些代碼和其他代碼放入同一頁面,然后讓這個頁面執(zhí)行數(shù)千次。
第二組測試運行全部八個例程,每次運行期間測試工具頁面只執(zhí)行測試頁面1次,但測試頁面本身包含循環(huán)。字符串翻轉(zhuǎn)和簡單數(shù)學(xué)計算都在它們各自的ASP頁面內(nèi)運行10,000次。模式匹配操作執(zhí)行1,000次。字符串查找、距離計算以及兩個位移操作(左移和右移)操作執(zhí)行10,000次。在數(shù)組初始化測試中,程序聲明一個100,000個元素的數(shù)組,然后通過For循環(huán)對它進行初始化并將計數(shù)器的值賦予各個元素。在記錄集遍歷測試中,程序通過While外循環(huán)遍歷記錄集(記錄集包含830個記錄),通過For Each ... Next內(nèi)循環(huán)遍歷單個記錄的各個字段(每個記錄有14個字段)。
第二組測試提供的是這樣一些方案,它們更加側(cè)重于被測試例程本身的執(zhí)行開銷,從而更清楚地告訴我們兩種腳本語言在執(zhí)行時間方面的優(yōu)缺點。