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

VBScript與JScript誰怕誰(1)

[摘要]轉(zhuǎn)自: ChinaByte在ASP環(huán)境下,VBScript和JScript哪種語言更好一些?本文測試這兩種腳本語言完成常見操作所需要的時間,分析它們各自的長處和不足,并根據(jù)測試結(jié)果得出了一些值得關(guān)注...
轉(zhuǎn)自: ChinaByte

在ASP環(huán)境下,VBScript和JScript哪種語言更好一些?本文測試這兩種腳本語言完成常見操作所需要的時間,分析它們各自的長處和不足,并根據(jù)測試結(jié)果得出了一些值得關(guān)注的結(jié)論。
作者:仙人掌工作室

   原文出處:http://www.asptoday.com/articles/20000920.htm

   選擇方案體系需要考慮許多因素,往往關(guān)系到基于性能、容量、可維護性、職員經(jīng)驗、現(xiàn)有基礎(chǔ)、個人愛好的成本優(yōu)勢分析。在典型的Microsoft/IIS實現(xiàn)中,這種考慮將繼續(xù)深入擴展到ASP與大量不同的COM+組件協(xié)作時所擔當?shù)慕巧涸谝粋極端,注重性能遠遠超過編程和維護的方便程度,ASP只作為整合業(yè)務邏輯和用戶界面的“粘合劑”;在另一個極端,注重編程和維護的方便程度超過性能,ASP本身用于實現(xiàn)許多業(yè)務邏輯。

   這種考慮甚至還可以繼續(xù)深入一步,分析ASP的兩種主要腳本語言(VBScript和JScript)相對而言各有哪些優(yōu)缺點。從功能上看,贊成JScript的人可以說JScript提供了諸如更好的錯誤控制、繼承、位操作以及一種客戶端、服務器端基本通用的腳本語言等優(yōu)點;反過來,贊成VBScript的人可以說VBScript也有自己的特點,如極其豐富的本地化能力,大小寫無關(guān)的代碼,更加簡單直觀的語法(當然,C程序員對這一點會有異議)。極端地說,我們不僅可以達到這樣一個在同一網(wǎng)站不同ASP頁面上分析兩種語言各自優(yōu)點的深度,而且在單個ASP頁面之內(nèi)也是如此!

   雖然有時在同一ASP頁面內(nèi)使用多種腳本語言能夠簡化編程,但它對性能不利。只需粗略地考慮一下這個問題,我們就知道運行這種ASP頁面需要啟動并緩存兩個腳本引擎,極大地增加了開銷。(而且,即使我們可以忽略性能問題,混合運用兩種腳本語言本身就是不安全的,這是因為引擎緩沖機制將影響執(zhí)行順序。簡而言之,如果開發(fā)者不小心的話,使用二個或以上腳本引擎的ASP頁面可能不會順序地執(zhí)行。)

   本文所要深入研究的就是這個Windows 2000 / ASP3.0平臺上VBScript對比JScript(以及VBScript加JScript)的性能問題。具體地說,本文將回答下列問題:

是否其中一種腳本語言要比另外一種快一點?
如果是,是在哪種情形之下以及為什么?
是否存在混合使用兩種腳本語言可以減少執(zhí)行時間的情形?(這種情形是否具有現(xiàn)實意義?)
如果某種語言總是比另外一種要快,兩者速度差異的大小是否足以成為選擇腳本語言的考慮因素?
   為回答這些問題,我們將比較8個典型例程的執(zhí)行時間,這些例程用VBScript、JScript以及兩者結(jié)合編寫(兩者結(jié)合是指,一種腳本語言作為ASP頁面的主要語言(基本語言),由它來調(diào)用另一種腳本語言編寫的內(nèi)嵌函數(shù))。這8個例程是:

字符串翻轉(zhuǎn)(顛倒),
在一個字符串內(nèi)搜索另一個字符串,
正則表達式模式匹配,
位移操作,
簡單數(shù)學計算,
復雜數(shù)學計算,
數(shù)組初始化,
ADO記錄集遍歷。
   分析方法

   鑒于影響Web應用性能的因素是如此眾多,而且真正困難的可能還在于配置出一個完全受控制的(也叫做“不現(xiàn)實的”)測試環(huán)境,本文的目的不是給出兩種語言性能比較而言其差異的精確測度,而是給出各種編程方案下性能相對優(yōu)勢的可靠指示。

   這就是說,我們的目標不是為了知道JScript的正則表達式模式匹配操作要比VBScript的快23%,我們主要關(guān)心的是:是否存在這種差異,這種差異一般有多少明顯,在什么樣的情況下存在這種差異,以及為何會如此。

   本文只給出匯總(平均)數(shù)據(jù)。如果要查看更具體的數(shù)據(jù),可以在data.xls找到原始的測試結(jié)果。data.xls可以從本文后面下載。