VBScript与JScript谁怕谁(4)

转自: ChinaByte

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

   所有其他例程都只包含语言本身提供的功能,这些例程只用纯VBScript和纯JScript版的代码测试。换句话说,对于任何情形的混合语言编程合理性测试来说,这些例程的价值都不大。

   第一组测试运行前六个例程,对于每一次运行,测试工具页面都要进行1000次对包含测试例程的ASP页面的调用(Server.Execute)。换句话说,如果某次运行调用了一个两种脚本语言都编写的页面1000次,则调用ASP引擎和各个脚本引擎的开销都达到1000次。虽然这种方法导致脚本引擎的开销影响测试结果,但我们获得的测试结果却更能反映出实际应用场合的效果。也就是说,虽然我们可以在单个页面之内完成1000次字符串翻转之类的操作,但更接近实际的是将这些代码和其他代码放入同一页面,然后让这个页面执行数千次。

   第二组测试运行全部八个例程,每次运行期间测试工具页面只执行测试页面1次,但测试页面本身包含循环。字符串翻转和简单数学计算都在它们各自的ASP页面内运行10,000次。模式匹配操作执行1,000次。字符串查找、距离计算以及两个位移操作(左移和右移)操作执行10,000次。在数组初始化测试中,程序声明一个100,000个元素的数组,然后通过For循环对它进行初始化并将计数器的值赋予各个元素。在记录集遍历测试中,程序通过While外循环遍历记录集(记录集包含830个记录),通过For Each ... Next内循环遍历单个记录的各个字段(每个记录有14个字段)。

   第二组测试提供的是这样一些方案,它们更加侧重于被测试例程本身的执行开销,从而更清楚地告诉我们两种脚本语言在执行时间方面的优缺点。

时间: 2024-12-28 02:37:48

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

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谁怕谁(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.31

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的默

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