轉自: ChinaByte
在ASP環境下,VBScript和JScript哪種語言更好一些?本文測試這兩種腳本語言完成常見操作所需要的時間,分析它們各自的長處和不足,并根據測試結果得出了一些值得關注的結論。 作者:仙人掌工作室
原文出處:http://www.asptoday.com/articles/20000920.htm
選擇方案體系需要考慮許多因素,往往關系到基于性能、容量、可維護性、職員經驗、現有基礎、個人愛好的成本優勢分析。在典型的Microsoft/IIS實現中,這種考慮將繼續深入擴展到ASP與大量不同的COM+組件協作時所擔當的角色:在一個極端,注重性能遠遠超過編程和維護的方便程度,ASP只作為整合業務邏輯和用戶界面的“粘合劑”;在另一個極端,注重編程和維護的方便程度超過性能,ASP本身用于實現許多業務邏輯。
這種考慮甚至還可以繼續深入一步,分析ASP的兩種主要腳本語言(VBScript和JScript)相對而言各有哪些優缺點。從功能上看,贊成JScript的人可以說JScript提供了諸如更好的錯誤控制、繼承、位操作以及一種客戶端、服務器端基本通用的腳本語言等優點;反過來,贊成VBScript的人可以說VBScript也有自己的特點,如極其豐富的本地化能力,大小寫無關的代碼,更加簡單直觀的語法(當然,C程序員對這一點會有異議)。極端地說,我們不僅可以達到這樣一個在同一網站不同ASP頁面上分析兩種語言各自優點的深度,而且在單個ASP頁面之內也是如此!
雖然有時在同一ASP頁面內使用多種腳本語言能夠簡化編程,但它對性能不利。只需粗略地考慮一下這個問題,我們就知道運行這種ASP頁面需要啟動并緩存兩個腳本引擎,極大地增加了開銷。(而且,即使我們可以忽略性能問題,混合運用兩種腳本語言本身就是不安全的,這是因為引擎緩沖機制將影響執行順序。簡而言之,如果開發者不小心的話,使用二個或以上腳本引擎的ASP頁面可能不會順序地執行。)
本文所要深入研究的就是這個Windows 2000 / ASP3.0平臺上VBScript對比JScript(以及VBScript加JScript)的性能問題。具體地說,本文將回答下列問題:
是否其中一種腳本語言要比另外一種快一點? 如果是,是在哪種情形之下以及為什么? 是否存在混合使用兩種腳本語言可以減少執行時間的情形?(這種情形是否具有現實意義?) 如果某種語言總是比另外一種要快,兩者速度差異的大小是否足以成為選擇腳本語言的考慮因素? 為回答這些問題,我們將比較8個典型例程的執行時間,這些例程用VBScript、JScript以及兩者結合編寫(兩者結合是指,一種腳本語言作為ASP頁面的主要語言(基本語言),由它來調用另一種腳本語言編寫的內嵌函數)。這8個例程是:
字符串翻轉(顛倒), 在一個字符串內搜索另一個字符串, 正則表達式模式匹配, 位移操作, 簡單數學計算, 復雜數學計算, 數組初始化, ADO記錄集遍歷。 分析方法
鑒于影響Web應用性能的因素是如此眾多,而且真正困難的可能還在于配置出一個完全受控制的(也叫做“不現實的”)測試環境,本文的目的不是給出兩種語言性能比較而言其差異的精確測度,而是給出各種編程方案下性能相對優勢的可靠指示。
這就是說,我們的目標不是為了知道JScript的正則表達式模式匹配操作要比VBScript的快23%,我們主要關心的是:是否存在這種差異,這種差異一般有多少明顯,在什么樣的情況下存在這種差異,以及為何會如此。
本文只給出匯總(平均)數據。如果要查看更具體的數據,可以在data.xls找到原始的測試結果。data.xls可以從本文后面下載。
|