务器性能。
同时请注意我们启用了服务器的缓冲。另外,为了让所有的文件名字长度相同,有的文件名字中嵌入了一个或多个下划线。
浪曦网-国内顶级IT视频网络编程教育平台Www.LangSin.Com
浪曦网-国内顶级IT视频网络编程教育平台Www.LangSin.Com
三、第一次测试
在第一次测试中,我们模拟MicrosoftASPADO示例中可找到的典型情形提取一个记录集。在这个例子(ADO__01.asp)中,我们首先打开一个连接,然后创建记录集对象。当然,这里的脚本按照本文第一部分所总结的编码规则作了优化。
<%OptionExplicit%>
<%
DimobjConnDimobjRS
Response.Write(_
""&;_
"
ADOTest"&;_""_)
SetobjConn=Server.CreateObject("ADODB.Connection")objConn.OpenApplication("Conn")
SetobjRS=Server.CreateObject("ADODB.Recordset")objRS.ActiveConnection=objConn
objRS.CursorType=adOpenForwardOnlyobjRS.LockType=adLockReadOnlyobjRS.OpenApplication("SQL")
IfobjRS.EOFThen
Response.Write("NoRecordsFound")Else
'writeheadingsResponse.Write(_
"
"&;_""&;_
"OrderID | "&;_"CustomerID | "&;_"EmployeeID | "&;_"OrderDate | "&;_"RequiredDate | "&;_"ShippedDate | "&;_"Freight | "&;_"
"_)
'writedata
DoWhileNotobjRS.EOFResponse.Write(_""&;_
""&;objRS("OrderID")&;" | "&;_""&;objRS("CustomerID")&;" | "&;_""&;objRS("EmployeeID")&;" | "&;_""&;objRS("OrderDate")&;" | "&;_""&;objRS("RequiredDate")&;" | "&;_""&;objRS("ShippedDate")&;" | "&;_
浪曦网-国内顶级IT视频网络编程教育平台Www.LangSin.Com
浪曦网-国内顶级IT视频网络编程教育平台Www.LangSin.Com
""&;objRS("Freight")&;" | "&;_"
"_)
objRS.MoveNextLoop
Response.Write("")EndIf
objRS.CloseobjConn.Close
SetobjRS=NothingSetobjConn=Nothing
Response.Write("HTML>")%>
下面是测试结果:
我们来看一下各栏数字的含义:
0返回0个记录的页面所需要的TTLB(毫秒)。在所有的测试中,该值被视为生成页面本身(包括创建对象)的时间开销,不包含循环访问记录集数据的时间。
25以毫秒计的提取和显示25个记录的TTLB
tottime/25"25"栏的TTLB除以25,它是每个记录的总计平均时间开销。
disptime/25"25"栏的TTLB减去"0"栏的TTLB,然后除以25.该值反映了在循环记录集时显示单个记录所需时间。
250提取和显示250个记录的TTLB.
tottime/250"250"栏的TTLB除以25,该值代表单个记录的总计平均时间开销。
disptime/250"250"栏的TTLB减去"0"栏的TTLB,再除以250.该值反映了在循环记录集时显示单个记录所需时间。
上面的测试结果将用来同下一个测试结果比较。四、是否应该通过包含引用ADOVBS.inc?
Microsoft提供的ADOVBS.inc包含了270行代码,这些代码定义了大多数的ADO属性常量。我们这个示例只从ADOVBS.inc引用了2个常量。因此本次测试(ADO__02.asp)中我们删除了包含文件引用,设置属性时直接使用相应的数值。
浪曦网-国内顶级IT视频网络编程教育平台Www.LangSin.Com
浪曦网-国内顶级IT视频网络编程教育平台Www.LangSin.Com
objRS.CursorType=0?'adOpenForwardOnlyobjRS.LockType=1'adLockReadOnly
可以看到页面开销下降了23%.该值并不影响单个记录的提取和显示时间,因为这里的变化不会影响循环内的记录集操作。有多种方法可以解决ADOVBS.inc的引用问题。我们建议将ADOVBS.inc文件作为参考,设置时通过注释加以说明。请记住,正如第一部分所指出的,适度地运用注释对代码的效率影响极小。另外一种方法是将那些需要用到的常量从ADOVBS.inc文件拷贝到页面内。
还有一个解决该问题的好方法,这就是通过链接ADO类型库使得所有的ADO常量直接可用。把下面的代码加入Global.a