VBScript与JScript谁怕谁(5)

转自: ChinaByte

   第一组测试的结果如下表所示。表中的数值是在不同方案下1000次ASP页面调用的平均执行时间,以秒计(每次执行ASP页面时测试例程执行一次)。 方案  
语言***  字符串翻转*  字符串查找**  正则表达式模式匹配*  位移操作*  简单数学计算*  复杂数学计算**  
VB - VB  2.245  2.038  4.452  2.200  2.173  2.151  
JS - JS  2.690  2.214  2.635  2.166  2.288  2.313  
VB - JS  3.522  -  3.430  3.035  -  3.178  
JS - VB  3.185  -  5.368  3.103  -  3.004  
*运行96次,其中:24次是VBScript测试工具页面、IIS默认脚本语言VBScript;24次是JScript测试工具页面、IIS默认脚本语言VBScript;24次是VBScript测试工具页面、IIS默认脚本语言JScript;还有24次是JScript测试工具页面、IIS默认脚本语言JScript。为了减小次序带来的影响,第一、三、四、六测试例程的方案所运行的次序每次都经过改变。上表所显示的时间是96次运行的平均时间。所有细节数据都可以在下载包的data.xls文件内找到。

**使用VBScript测试工具页面运行24次,IIS脚本语言设置成VBScript(没有运行其他的测试工具页面和默认脚本语言的组合,因为在最初的运行中它们没有显示出任何次序或时间差异上的影响)。

***VB代表VBScript,JS代表JScript。两种语言中的前一种是页面的基本语言,第二种是内嵌代码所用的语言。内嵌代码不用于不需要使用它的场合。

   大多数测试结果的含义都非常明显,但应注意两个可能令人惊奇的结果。我们知道,JScript通过String对象的方法处理正则表达式,具有更好的灵活性,而VBScript需要实例化RegExp对象的开销。但令人惊奇的是,完全用VBScript编写的代码比以VBScript为基本语言、用内嵌JScript函数完成模式匹配操作的代码要慢。显然,实例化VBScript的RegExp对象需要非常可观的时间开销。

   第二个令人惊奇的地方是,虽然事实证明JScript的位操作总是要比VBScirpt的快,但在这些测试中两者的时间差异非常小。

   第二组测试的结果如下表所示。表中的数值表示不同方案下单个ASP页面的平均执行时间,以秒计(每执行一次ASP页面,测试例程运行多次)。 方案  
语言**  字符串翻转(1)  字符串搜索(3)  正则表达式模式匹配(2)  位移操作(3)  简单数学计算(1)  复杂数学计算(3)  数组初始化(1)  记录集遍历(4)  
VB - VB  0.120  0.346  2.250  0.200  0.287  0.328  2.182  0.524  
JS - JS  2.589  0.998  0.138  0.036  0.426  0.499  9.120  0.641  
VB - JS  3.066  -  0.221  0.890  -  1.310  -  -  
JS - VB  0.472  -  2.363  0.769  -  0.671  -  -  
*每种情形用VBScript测试工具页面运行24次,IIS的默认脚本语言是VBScript(没有运行其他的测试工具页面和IIS默认脚本语言组合,因为在最初的运行中它们没有显示出任何次序或时间差异上的影响)。为了减小次序带来的影响,第一、三、四、六测试例程的方案所运行的次序每次都经过改变。上表所显示的是24次运行的平均时间,所有细节数据都可以在下载包的data.xls内找到。

**VB代表VBScript,JS代表JScript。两种语言中的前一种是页面的基本语言,第二种是内嵌代码所用的语言。内嵌代码不用于不需要使用它的场合。

100,000 次迭代
1,000次迭代
10,000次迭代
830个记录的外部循环,14个字段的内部循环(总共11,620次迭代)

   这些测试结果更清楚地证实了两种语言的区别所在。从数学计算的结果可以看出,VBScript在这方面要比JScript快——除了位移操作之外(JScript本身支持位移操作,而VBScript不支持)。

   两种语言最显著的区别在于字符串翻转、字符串搜索和数组初始化,所有这些测试项目中VBScript都占优势。

   字符串翻转操作是VBScript本身所支持的,在该项测试中两者差别尤其明显。在这个测试中,两者的差异之大使得采用内嵌VBScript StrReverse()函数也要比用JScript编写该函数快。

   在那些数据改动非常频繁使得手工构造数据失去现实意义的应用中,数据库记录集遍历是一种相当常见操作,因此,上述测试结果中VBScript和JScript在记录集遍历上的差异可能会给那些认为JScript优于VBScript的人一些警示。然而,这种执行时间上的差异也可以用如下事实来辩解,即我们为记录集中的每个记录分别实例化了一个Enumerator对象(总共达到了830次!)。

   从第一组测试的结果中已经可以看出,正则表达式模式匹配是JScript绝对优于VBScript的一个地方,所以这一组的测试结果并不令人奇怪。这里的测试结果证实了上一组的测试结果,但差异程度有所放大。

时间: 2024-09-29 08:10:34

VBScript与JScript谁怕谁(5)的相关文章

VBScript与JScript谁怕谁(1)

转自: ChinaByte 在ASP环境下,VBScript和JScript哪种语言更好一些?本文测试这两种脚本语言完成常见操作所需要的时间,分析它们各自的长处和不足,并根据测试结果得出了一些值得关注的结论. 作者:仙人掌工作室 原文出处:http://www.asptoday.com/articles/20000920.htm 选择方案体系需要考虑许多因素,往往关系到基于性能.容量.可维护性.职员经验.现有基础.个人爱好的成本优势分析.在典型的Microsoft/IIS实现中,这种考虑将继续深

VBScript与JScript谁怕谁(3)

转自: ChinaByte我们选择了八个不同的测试例程(所有测试用到的代码已经在本文后面的下载ZIP文件中提供).如果语言本身不具备某个方法或函数,则编写一个专用的方法. 1.字符串翻转:进行这个测试不仅是因为它是一个很有代表性的操作,而且因为VBScript提供了内建的StrReverse()函数而JScript却没有等价的函数或方法.这为我们提供了一个很好的混合语言编程测试案例.本测试中被翻转的字符串是"String Reversal". 2.在一个字符串中搜索另一个字符串:VBS

VBScript与JScript谁怕谁(6)

转自: ChinaByte 显然,我们可以从测试结果中得到这样一个结论:在一个注重性能的场合,混合运用多种脚本语言一般是没有意义的.如果要考虑两次模式匹配测试的结果差异,也应该看到每次迭代都创建了一个RegExp对象的实例. 从这些测试结果中我们还可以得出另外两个重要的结论.首先,如果一种语言本身支持某个功能,直接使用该功能总是要比借用另外一种语言的功能快.第二,如果一种语言以对象形式实现了某种功能(比如VBScript的RegExp对象,JScript的Array和String对象),而第二种

VBScript与JScript谁怕谁(2)

转自: ChinaByte测试是在一个桌面系统上进行,配置为:400MHz Celeron处理器,128 MB RAM,操作系统是Windows 2000 Server (5.00.2195),Web服务器是运行ASP 3.0 (asp.dll 5.0.2180.1)的IIS 5.0.2157.1.脚本引擎(JScript和VBScript)的版本是5.1.0.4615.测试期间系统所运行的服务减小到最小数量,而且为尽可能地保证测试环境的稳定性,这个最小数量一直保持不变. 此外,考虑到IIS的默

VBScript与JScript谁怕谁(4)

转自: ChinaByte 上面的第一.三.四.六几种算法有一个共同特点:或者是其中一种语言独具某个功能,或者在正则表达式匹配和距离计算中,两种语言的差别非常大,足以成为一个很有意义的混合语言编程测试项目.这就为我们测试这些算法增加了两种方案:以VBScript作为基本语言调用内嵌的JScript函数:以JScript为基本语言调用内嵌的VBScript函数.测试代码举例如下(测试方案:字符串翻转,以JScript为基本语言,VBScript内嵌): < %@Language=JScript%

ASP页面内VBScript和JScript的交互

js|jscript|vbscript|交互|页面     ASP具备管理不同语言脚本程序的能力,能够自动调用合适的脚本引擎以解释脚本代码和执行内置函数.ASP开发环境提供了两种脚本引擎,即VBScript(缺省)和JScript.不过,开发者并没有被限制于只能使用这两种语言,只要能够提供合适的ActiveX脚本引擎就能使用任何脚本语言.       脚本语言的选择往往基于许多不同原因:它可能是开发者最为熟悉的语言,可能是对给定工程来说能够提供最多特色支持的,也有可能是最具效率的.不同的环境和要

ASP页面内VBScript和JScript的交互(转)

js|jscript|vbscript|交互|页面 ASP具备管理不同语言脚本程序的能力,能够自动调用合适的脚本引擎以解释脚本代码和执行内置函数.ASP开发环境提供了两种脚本引擎,即VBScript(缺省)和JScript.不过,开发者并没有被限制于只能使用这两种语言,只要能够提供合适的ActiveX脚本引擎就能使用任何脚本语言. 脚本语言的选择往往基于许多不同原因:它可能是开发者最为熟悉的语言,可能是对给定工程来说能够提供最多特色支持的,也有可能是最具效率的.不同的环境和要求使得我们在选择脚本

ASP页面内VBScript和JScript (转)

js|jscript|vbscript|页面 ASP页面内VBScript和JScript  (仙人掌工作室·CPCW) ASP具备管理不同语言脚本程序的能力,能够自动调用合适的脚本引擎以解释脚本代码和执行内置函数.ASP开发环境提供了两种脚本引擎,即VBScript(缺省)和JScript.不过,开发者并没有被限制于只能使用这两种语言,只要能够提供合适的ActiveX脚本引擎就能使用任何脚本语言. 脚本语言的选择往往基于许多不同原因:它可能是开发者最为熟悉的语言,可能是对给定工程来说能够提供最

使用VBScript和JScript编写WEB应用程序(一) 拙作一片,凑或者看吧:-(

js|jscript|vbscript|web|程序 使用VBScript和JScript编写WEB应用程序 我心飞扬 写这篇文章的动机是看到了大家对VBScript和Javascript的讨论以及另一片类似的文章,觉得有必要将大家的想法加以整理:-),并将我在工作中产生的一些心得拿出来和大家分享,希望对大家有所帮助.当然,水平有限,错误在所难免. Active Server Pages是Microsoft Windows DNA的重要组成部分,使用ASP我们可以很容易的构造功能强大的基于Web