ASP程式效能測試報告(七)

來源:互聯網
上載者:User
程式|效能 十、用哪種方法引用記錄集欄位值效率最高?

   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 >")



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.