明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

VBScript與JScript誰怕誰(4)

[摘要]轉(zhuǎn)自: ChinaByte上面的第一、三、四、六幾種算法有一個(gè)共同特點(diǎn):或者是其中一種語言獨(dú)具某個(gè)功能,或者在正則表達(dá)式匹配和距離計(jì)算中,兩種語言的差別非常大,足以成為一個(gè)很有意義的混合語言編程測(cè)試...
轉(zhuǎn)自: ChinaByte

上面的第一、三、四、六幾種算法有一個(gè)共同特點(diǎn):或者是其中一種語言獨(dú)具某個(gè)功能,或者在正則表達(dá)式匹配和距離計(jì)算中,兩種語言的差別非常大,足以成為一個(gè)很有意義的混合語言編程測(cè)試項(xiàng)目。這就為我們測(cè)試這些算法增加了兩種方案:以VBScript作為基本語言調(diào)用內(nèi)嵌的JScript函數(shù);以JScript為基本語言調(diào)用內(nèi)嵌的VBScript函數(shù)。測(cè)試代碼舉例如下(測(cè)試方案:字符串翻轉(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版的代碼測(cè)試。換句話說,對(duì)于任何情形的混合語言編程合理性測(cè)試來說,這些例程的價(jià)值都不大。

   第一組測(cè)試運(yùn)行前六個(gè)例程,對(duì)于每一次運(yùn)行,測(cè)試工具頁面都要進(jìn)行1000次對(duì)包含測(cè)試?yán)痰腁SP頁面的調(diào)用(Server.Execute)。換句話說,如果某次運(yùn)行調(diào)用了一個(gè)兩種腳本語言都編寫的頁面1000次,則調(diào)用ASP引擎和各個(gè)腳本引擎的開銷都達(dá)到1000次。雖然這種方法導(dǎo)致腳本引擎的開銷影響測(cè)試結(jié)果,但我們獲得的測(cè)試結(jié)果卻更能反映出實(shí)際應(yīng)用場(chǎng)合的效果。也就是說,雖然我們可以在單個(gè)頁面之內(nèi)完成1000次字符串翻轉(zhuǎn)之類的操作,但更接近實(shí)際的是將這些代碼和其他代碼放入同一頁面,然后讓這個(gè)頁面執(zhí)行數(shù)千次。

   第二組測(cè)試運(yùn)行全部八個(gè)例程,每次運(yùn)行期間測(cè)試工具頁面只執(zhí)行測(cè)試頁面1次,但測(cè)試頁面本身包含循環(huán)。字符串翻轉(zhuǎn)和簡單數(shù)學(xué)計(jì)算都在它們各自的ASP頁面內(nèi)運(yùn)行10,000次。模式匹配操作執(zhí)行1,000次。字符串查找、距離計(jì)算以及兩個(gè)位移操作(左移和右移)操作執(zhí)行10,000次。在數(shù)組初始化測(cè)試中,程序聲明一個(gè)100,000個(gè)元素的數(shù)組,然后通過For循環(huán)對(duì)它進(jìn)行初始化并將計(jì)數(shù)器的值賦予各個(gè)元素。在記錄集遍歷測(cè)試中,程序通過While外循環(huán)遍歷記錄集(記錄集包含830個(gè)記錄),通過For Each ... Next內(nèi)循環(huán)遍歷單個(gè)記錄的各個(gè)字段(每個(gè)記錄有14個(gè)字段)。

   第二組測(cè)試提供的是這樣一些方案,它們更加側(cè)重于被測(cè)試?yán)瘫旧淼膱?zhí)行開銷,從而更清楚地告訴我們兩種腳本語言在執(zhí)行時(shí)間方面的優(yōu)缺點(diǎn)。