明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

提高ASP性能的最佳選擇(3)

[摘要]結(jié)論   本文第一部分的重要之處在于許多小事情的累積。為了強(qiáng)調(diào)這個(gè)問(wèn)題,我設(shè)置了最后一個(gè)測(cè)試,在其中進(jìn)行了我們以前曾經(jīng)測(cè)試過(guò)的看來(lái)無(wú)所謂但實(shí)際上有壞影響的所有操作。我包含了許多Response.Write 聲明、關(guān)閉了緩沖器、設(shè)置了默認(rèn)語(yǔ)言、去掉了Option Explicit 引用并初始化了錯(cuò)誤...
結(jié)論
  本文第一部分的重要之處在于許多小事情的累積。為了強(qiáng)調(diào)這個(gè)問(wèn)題,我設(shè)置了最后一個(gè)測(cè)試,在其中進(jìn)行了我們以前曾經(jīng)測(cè)試過(guò)的看來(lái)無(wú)所謂但實(shí)際上有壞影響的所有操作。我包含了許多Response.Write 聲明、關(guān)閉了緩沖器、設(shè)置了默認(rèn)語(yǔ)言、去掉了Option Explicit 引用并初始化了錯(cuò)誤句柄。

  < %@ LANGUAGE=VBSCRIPT % >

  < %

  On Error Resume Next

  FirstName = "John"

  …

  BirthDate = "1/1/1950"

  Response.Write("< html >")

  Response.Write("< head >")

  Response.Write(" < title >Response Test< /title >")

  Response.Write("< /head >")

  Response.Write("< body >")

  Response.Write("< h1 >Response Test< /h1 >")

  Response.Write("< table >")

  Response.Write("< tr >< td >< b >First Name:< /b >< /td >< td >" & FirstName & "< /td >< /tr >")

  …

  Response.Write("< tr >< td >< b >Birth Date:< /b >< /td >< td >" & BirthDate & "< /td >< /tr >")

  Response.Write("< /table >")

  Response.Write("< /body >")

  Response.Write("< /html >")

  % >

  /app2/final_1.asp片段

  基準(zhǔn)值 = 5.57 msec/page

  反應(yīng)時(shí)間 = 8.85 msec/page

  差 = +3.28 msec (58.9% 增加)

  聽(tīng)起來(lái)可能很明顯,但是理解更重要,那就是我們放置在頁(yè)面上的代碼會(huì)對(duì)性能有影響。頁(yè)面上的小變化有時(shí)會(huì)大大地增加反應(yīng)時(shí)間。

規(guī)則概括
  * 避免內(nèi)聯(lián)ASP的過(guò)多使用。

  * 總是將連續(xù)Response.Write 語(yǔ)句連接進(jìn)一個(gè)單獨(dú)語(yǔ)句內(nèi)。

  * 永遠(yuǎn)不要在Response.Write 周圍使用包裝函數(shù)以附加CRLF。

  * 如果必須格式化HTML輸出,直接在Response.Write 語(yǔ)句內(nèi)附加CRLF。

  * 總是通過(guò)服務(wù)器設(shè)置開(kāi)啟緩沖器。

  * 只要使用適度,ASP注釋對(duì)性能的影響很小或根本沒(méi)有影響。

  * 設(shè)置服務(wù)器的默認(rèn)語(yǔ)言配置以與站點(diǎn)上使用的語(yǔ)言相匹配。

  * 除非你使用非默認(rèn)語(yǔ)言,不要設(shè)置語(yǔ)言聲明。

  * 在VBScript中總是使用Option explicit 。

  * 在不需要的情況下,總是在頁(yè)面或應(yīng)用程序的水平上關(guān)閉Session狀態(tài)。

  * 只有當(dāng)代碼在頁(yè)面之間共享時(shí)才使用Include 文件。

  * 在一個(gè)頁(yè)面上,如果代碼要使用一次以上,就將代碼封入函數(shù)區(qū)。

  * 適當(dāng)時(shí)候,將變量聲明移到函數(shù)范圍內(nèi)。

  * 只有會(huì)發(fā)生超出測(cè)試或控制能力之外的情況時(shí)才使用錯(cuò)誤句柄。

  * 只有當(dāng)兩個(gè)或更多操作被作為一個(gè)單元執(zhí)行時(shí),才使用上下文處理。

  現(xiàn)在回顧一下,有許多問(wèn)題可以作為普遍性的方針:

  * 避免冗余--不要設(shè)置那些默認(rèn)狀態(tài)下已經(jīng)設(shè)置的屬性。

  * 限制函數(shù)調(diào)用的次數(shù)。

  * 縮小代碼的范圍。

  在本文的第二部分,我們將探索有關(guān)ADO和COM對(duì)象一些深入的問(wèn)題。