VBScript与JScript谁怕谁(1)
文章类别:
asp | 发表日期:2008-10-5 20:17:04
转自: 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可以从本文后面下载。