网络编程
位置:首页>> 网络编程>> Asp编程>> asp 性能测试报告 学习asp朋友需要了解的东西(6)

asp 性能测试报告 学习asp朋友需要了解的东西(6)

 来源:asp之家 发布时间:2011-03-09 10:57:00 

标签:asp,性能测试


   第6个规则如下:

l除非确实要求记录集本地化,否则应避免使用。
十、用哪种方法引用记录集字段值效率最高?

   10.1 测试

   至此为止我们一直通过名字引用记录集中的字段值。由于这种方法要求每次都必须寻找相应的字段,它的效率并不高。为证明这一点,下面这个测试中我们通过字段在集合中的索引引用它的值(ADO__08.asp):

代码如下:

'write data 
Do While Not objRS.EOF 
Response.Write( _ 
"<TR>" & _ 
"<TD>" & objRS(0) & "</TD>" & _ 
"<TD>" & objRS(1) & "</TD>" & _ 
"<TD>" & objRS(2) & "</TD>" & _ 
"<TD>" & objRS(3) & "</TD>" & _ 
"<TD>" & objRS(4) & "</TD>" & _ 
"<TD>" & objRS(5) & "</TD>" & _ 
"<TD>" & objRS(6) & "</TD>" & _ 
"</TR> " _ 

objRS.MoveNext 
Loop

 和预期的一样,页面开销也有小小的变化(这或许是因为代码略有减少)。然而,这种方法在显示时间上的改善是相当明显的。

   在下一个测试中,我们把所有的字段分别绑定到变量(ADO__09.asp):

代码如下:

If objRS.EOF Then 
Response.Write("No Records Found") 
Else 
'write headings 
... 
Dim fld0 
Dim fld1 
Dim fld2 
Dim fld3 
Dim fld4 
Dim fld5 
Dim fld6 
Set fld0 = objRS(0) 
Set fld1 = objRS(1) 
Set fld2 = objRS(2) 
Set fld3 = objRS(3) 
Set fld4 = objRS(4) 
Set fld5 = objRS(5) 
Set fld6 = objRS(6) 
'write data 
Do While Not objRS.EOF 
Response.Write( _ 
"<TR>" & _ 
"<TD>" & fld0 & "</TD>" & _ 
"<TD>" & fld1 & "</TD>" & _ 
"<TD>" & fld2 & "</TD>" & _ 
"<TD>" & fld3 & "</TD>" & _ 
"<TD>" & fld4 & "</TD>" & _ 
"<TD>" & fld5 & "</TD>" & _ 
"<TD>" & fld6 & "</TD>" & _ 
"</TR>" _ 

objRS.MoveNext 
Loop 
Set fld0 = Nothing 
Set fld1 = Nothing 
Set fld2 = Nothing 
Set fld3 = Nothing 
Set fld4 = Nothing 
Set fld5 = Nothing 
Set fld6 = Nothing 
Response.Write("</TABLE>") 
End If 

 这是目前为止最好的记录。请注意单个记录的显示时间已经降低到0.45毫秒以下。

   上述脚本都要求对结果记录集的构造有所了解。例如,我们在列标题中直接使用了字段名字,单独地引用各个字段值。下面这个测试中,不仅字段数据通过遍历字段集合得到,而且字段标题也用同样的方式得到,这是一种更为动态的方案(ADO__10.asp)。

代码如下:

If objRS.EOF Then 
Response.Write("No Records Found") 
Else 
'write headings Response.Write("<TABLE BORDER=1><TR>") 
For Each objFld in objRS.Fields 
Response.Write("<TH>" & objFld.name & "</TH>") 
Next 
Response.Write("</TR>") 
'write data 
Do While Not objRS.EOF 
Response.Write("<TR>") 
For Each objFld in objRS.Fields 
? Response.Write("<TD>" & objFld.value & "</TD>") 
Next 
Response.Write("</TR>") 
objRS.MoveNext 
Loop 
Response.Write("</TABLE>") 
End If 

 可以看到,代码性能有所下降,但它仍旧要比ADO__07.asp要快。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com