三招提高.NET網站效能

iDotNetSpace發表於2010-01-06

一、減少往返行程(Reduce Round Trips)
  使用下面的方法可以減少Web伺服器和Browser之間的往返行程:

  1、為Browser啟用快取

  如果呈現的內容是靜態的或變化週期較長,應啟用Browser快取,避免發出冗餘的http請求。

  2、緩衝頁面輸出

  如果可能,則儘量緩衝頁面輸出,處理結束後再一次傳送到客戶端,這可以避免頻繁傳遞小塊內容所造成的多次網路互動。由於這種方式在頁面處理結束之前客戶端無法看到頁面內容,因此如果一個頁面的尺寸較大的話,可考慮使用Response.Flush方法。該方法強制輸出迄今為止在緩衝區中的內容,你應當採用合理的演算法控制呼叫Response.Flush方法的次數。

  3、使用Server.Transfer重定向請求

  使用Server.Transfer方法重定向請求優於Response.Redirect方法。原因是Response.Redirect會向Broswer回送一個響應頭,在響應頭中指出重定向的URL,之後Brower使用新的URL重新發出請求。而Server.Transfer方法直接是一個簡單的服務端呼叫,完全沒有這些開銷!

  需要注意Server.Transfer有侷限性:第一,它會跳過安全檢查;第二,只適用於在同一Web應用內的頁面間跳轉。

 二、避免阻塞和長時間的作業

  如果需要執行阻塞或長時間執行的操作,可以考慮使用非同步呼叫的機制,以便Web伺服器能夠繼續處理其它的請求。

  1、使用非同步方式呼叫Web服務和遠端物件

  只要有可能就要避免在請求的處理過程中對Web服務和遠端物件的同步呼叫,因為它佔用的是的ASP.NET 執行緒池中的工作執行緒,這將直接影響Web伺服器響應其它請求的能力。

  2、考慮給不需要返回值的Web方法或遠端物件的方法新增OneWay屬性

  這種模式能讓Web Server呼叫之後就立即返回。可根據實際情況決定是否使用這種方法。

  3、使用工作佇列

  將作業提交到伺服器上的工作佇列中。客戶端通過傳送請求來輪詢作業的執行結果。

 

三、使用快取
  快取能在很大程度上決定ASP.NET應用的最終效能。Asp.net支援頁面輸出快取和頁面部分快取,並提供Cache API,供應用程式快取自己的資料。是否使用快取可考慮下面的要點:

  1、識別建立與訪問代價較大的資料

  2、評估需要快取資料的易變性

  3、評估資料的使用頻次

  4、 將要快取資料中易變資料和不變資料分離,只快取不變資料

  5、選擇合適的快取機制(除Asp.net Cache外,Application state和Session state也可以作為快取使用)

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-624442/,如需轉載,請註明出處,否則將追究法律責任。

相關文章