asp性能测试第二部分(转)(十) |
十、用哪种方法引用记录集字段值效率最高?
10.1 测试
至此为止我们一直通过名字引用记录集中的字段值。由于这种方法要求每次都必须寻找相应的字段,它的效率并不高。为证明这一点,下面这个测试中我们通过字段在集合中的索引引用它的值(ADO__08.asp):
'write data
Do While Not objRS.EOF
Respons…… |
|
asp性能测试第二部分(转)(九) |
九、设置记录集属性用哪种方法最好?
前面的所有测试均采用了直接设置Recordset各个属性的方法。不过,Recordset.open函数允许为所有必须设置的属性指定相应的参数。每个属性都用单独的代码行设置虽然易于阅读和维护,但每行代码都会增加一个COM对象的方法调用(ADO__07.asp)。
Set objRS = Server.CreateObject("AD…… |
|
asp性能测试第二部分(转)(八) |
八、是否应该使用本地记录集?
ADO允许使用本地(客户端)记录集,此时查询将提取记录集内的所有数据,查询完成后连接可以立即关闭,以后使用本地的游标访问数据,这为释放连接带来了方便。使用本地记录集对于访问那些要求数据离线使用的远程数据服务非常重要,那么,对于普通的应用它是否同样有所帮助?
下面我…… |
|
asp性能测试第二部分(转)(七) |
七、最好用哪种方法提取记录集?
到目前为止我们一直通过创建Recordset对象提取记录集,但是ADO也提供了间接的记录集提取方法。下面的测试比较ADO__03.asp和直接从Connection对象创建记录集(CONN_01.asp)这两种方法:
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open Application(…… |
|
asp性能测试第二部分(转)(六) |
六、哪种游标类型和记录锁定方式效率最高?
迄今为止的所有测试中我们只使用了“只能向前”的游标来访问记录集。ADO为记录集提供的游标还有三种类型:静态可滚动的游标,动态可滚动的游标,键集游标。每种游标都提供不同的功能,比如访问前一记录和后一记录、是否可以看到其他程序对数据的修改等。不过,具体讨论每一…… |
|
asp性能测试第二部分(转)(五) |
五、使用记录集时是否应该创建单独的连接对象?
要正确地回答这个问题,我们必须分析两种不同条件下的测试:第一,页面只有一个数据库事务;第二,页面有多个数据库事务。
在前例中,我们创建了一个单独的Connection对象并将它赋给Recordset的ActiveConnection属性。然而,如ADO__03.asp所示,我们也可以直接把…… |
|
asp性能测试第二部分(转)(四) |
四、是否应该通过包含引用ADOVBS.inc?
Microsoft提供的ADOVBS.inc包含了270行代码,这些代码定义了大多数的ADO属性常量。我们这个示例只从ADOVBS.inc引用了2个常量。因此本次测试(ADO__02.asp)中我们删除了包含文件引用,设置属性时直接使用相应的数值。
objRS.CursorType = 0 ' adOpenForwardOnly
objRS.Loc…… |
|
asp性能测试第二部分(转)(三) |
三、第一次测试
在第一次测试中,我们模拟Microsoft ASP ADO示例中可找到的典型情形提取一个记录集。在这个例子(ADO__01.asp)中,我们首先打开一个连接,然后创建记录集对象。当然,这里的脚本按照本文第一部分所总结的编码规则作了优化。
< % Option Explicit % >
< !-- #Include file="ADOVBS.INC…… |
|
asp性能测试第二部分(转)(二) |
二、测试环境
本测试总共用到了21个ASP文件,这些文件可以从本文后面下载。每一个页面设置成可以运行三种不同的查询,分别返回0、25、250个记录。这将帮助我们隔离页面本身的初始化、运行开销与用循环访问记录集的开销。
为便于测试,数据库连接字符串和SQL命令串都在Global.asa中作为Application变量保存。由…… |
|
asp性能测试第二部分(转)(一) |
一、测试目的
编译如下:
本文的第一部分考察了ASP开发中的一些基本问题,给出了一些性能测试结果以帮助读者理解放入页面的代码到底对性能有什么影响。ADO是由Microsoft开发的一个通用、易用的数据库接口,事实证明通过ADO与数据库交互是ASP最重要的应用之一,在第二部分中,我们就来研究这个问题。
ADO所…… |
|
二十八条改善 ASP 性能和外观的技巧(22-28) |
技巧 22:尽可能使用 Server.Transfer 代替 Response.Redirect
技巧 23:在目录 URL 中使用后斜杠
技巧 24:避免使用服务器变量
技巧 25:升级到最新和最出色的
技巧 26:优化 Web 服务器
技巧 27:进行性能测试
技巧 28:阅读资源链接
技巧 22:尽可能使用 Server.Transfer 代替 Response.Redirect
Response.Redir…… |
|
二十八条改善 ASP 性能和外观的技巧(15-21) |
技巧 15:批处理内嵌脚本和 Response.Write 语句
技巧 16:如果页面需要很长时间才能完成,那么执行前使用 Response.IsClientConnected
技巧 17:使用 <OBJECT> 标记例示对象
技巧 18:对于 ADO 和其它组件使用 TypeLib 绑定
技巧 19:利用浏览器的验证功能
技巧 20:避免在循环语句中使用字符串串联
技巧 21:…… |
|
二十八条改善 ASP 性能和外观的技巧(8-14) |
技巧 8:迟一点获得资源,早一点释放资源
技巧 9:进程外执行过程以性能换取可靠性
技巧 10:使用显式选项
技巧 11:在子例程和函数中使用局部变量
技巧 12:将经常使用的数据复制到脚本变量中
技巧 13:避免重新确定数组的维数
技巧 14:使用响应缓冲
技巧 8:迟一点获得资源,早一点释放资源
这里是一个小技巧供…… |
|
二十八条改善 ASP 性能和外观的技巧(1-7) |
二十八条改善 ASP 性能和外观的技巧
Len Cardinal,高级顾问,Microsoft Consulting Services George V. Reilly
Microsoft IIS Performance Lead
改编自Nancy Cluts 的文章 开发人员技术工程师
Microsoft Corporation
2000 年 4 月
摘要:本文介绍优化 ASP 应用程序和 VBScript 的技巧。
目录
技巧 1:将经常使用…… |
|
在ASP中编写DLL的问题 |
ActiveX DLL 可以用来保护代码的一些部分,因为作为开发人员我们知道,用ASP进行工作时,源代码控制是一个艰难而琐碎的过程。ActiveX DLL 是经过编译的代码,没有工程文件中的源代码就不能对其进行修改。这就给开发人员带来许多可能:开发自动操作公共程序的程序并将它们作为共享软件来分发,分发至少有一些源代码保护的ASP…… |
|
asp性能测试报告(转)(八) |
使用过程和函数对于代码的组织和维护有着很大的好处,特别是页面中部分代码需要多次使用的时候。不过此时为了完成相同的处理任务要多出一次函数(或过程)的调用,这是它的缺点。从理论上看,函数块内的变量具有更好的效率。下面我们来看看这两个问题的测试结果。
8.1 将Response.Write语句移入子过程
在…… |
|
asp性能测试报告(转)(七) |
在ASP页面的前面设置Option Explicit要求所有变量在使用之前必须声明。由于两个原因,这个声明通常是推荐使用的:第一,应用可以更快地处理变量;第二,防止意外的变量误用。下面这个测试中,我们删除了Option Explicit和所有的Dim语句。
基 准 = 5.57 毫秒/页
响应时间 = 6.12 毫秒/页
差 额 = +0.55 毫秒 (增加9.…… |
|
asp性能测试报告(转)(六) |
有许多理由可以要求避免使用IIS的会话状态,不过这需要另外一篇文章说明。我们这里回答的问题是:当页面确实不需要会话状态时,关闭它是否会提高性能?从理论上来讲是肯定的,因为不需要为该页面初始化会话状态。
和缓冲一样,会话状态也可以通过两种方式设置:通过脚本或者通过服务器配置。
6.1 通过脚本关闭…… |
|
asp性能测试报告(转)(五) |
IIS默认处理VBScript,然而我们可以看到许多通过< %@LANGUAGE=VBSCRIPT% >语句显式设置脚本语言类型的例子。下面的测试分析这个语句对性能的影响。
< %@ LANGUAGE=VBSCRIPT % >
< % OPTION EXPLICIT
Dim FirstName
...
/app2/language1.asp片断
基 准 = 5.57 毫秒/页
响应时间 = 5.64 毫秒/页
差 额…… |
|
asp性能测试报告(转)(四) |
四、ASP代码中注释对执行效率有何影响?
许多HTML开发者知道,加入HTML注释是一种坏习惯。这是因为:首先,注释增加了数据传输量;其次,HTML注释为其它开发者提供了有关页面组织的信息。那么,ASP页面中的注释又怎样?ASP中的注释永远不会被浏览器看到,但是它们增加了ASP引擎所解析的脚本的大小。
在这个测试…… |
|
« ‹ ..[8][9][10][11][12][13][14].. › » 20条/页 共346条 |