Asp.NET中常用的一些最佳化效能的方法

來源:互聯網
上載者:User
    ASP.NET 的緩衝機制相比ASP有很大的改進,本文檔除對常用最佳化方法進行總結介紹外,強調了如何使用ASP.NET的緩衝來獲得最佳效能。
  
  1:不要使用不必要的session
  和ASP中一樣,在不必要的時候不要使用Session。
  
  可以針對整個應用程式或者頁面禁用工作階段狀態:
  
  l 禁用頁面的工作階段狀態
  
  
  l 禁用應用程式的工作階段狀態
  
  在應用程式的Web.Config檔案的sessionstate配置節中,將mode屬性設定為off。
  
  即:。
  
  
  
  2:不使用不必要的Server Control
  ASP.net中,大量的伺服器端控制項方便了程式開發,但也可能帶來效能的損失,因為使用者每操作一次伺服器端控制項,就產生一次與伺服器端的往返過程。因此,非必要,應當少使用Server Control。
  
  
  
  3:不使用不必要的ViewState
  預設情況下,ASP.Net對所有的Server Control都啟用了ViewState(檢視狀態)。但ViewState需要在用戶端儲存一些資訊,這會造成效能的消耗。當必須使用Server Control時,可以考慮禁止ViewState。
  
  有兩種方式禁止ViewState:針對整個頁面或者單個控制項禁用ViewState。
  
  l 針對控制項
  
  
  l 針對頁面
  
  
  4:不要用Exception控製程序流程
  有些程式員可能會使用異常來實現一些流程式控制制。例如:
  
  
  
  try{
  
  result=100/num;
  
  }
  
  Catch(Exception e)
  
  {
  
  result=0;
  
  }
  
  但實際上,Exception是非常消耗系統效能的。除非必要,不應當使用異常控制來實現程式流程。
  
  上面的代碼應當寫為:
  
  
  
  if(num!=0)
  
  result=100/num;
  
  else
  
  result=0;
  
  5:禁用VB和Jscript動態資料類型
  應筆賈障允鏡厴昝鞅淞渴堇嘈停餑芄喚讜汲絛虻鬧蔥惺奔洹N耍梢栽諞趁媲懊嫘疵鰨?
  
  6:使用預存程序完成資料訪問
  7:唯讀資料訪問不要使用DataSet。
  DataSet作為一個功能強大的、支援離線的資料庫,其對效能的開銷也相對較大。在特定的場合可以使用.Net中的其它資料集作為替代。
  
  n 使用SqlDataReader代替DataSet;
  
  n SqlDataReader是read-only,forward-only。
  
  8:關閉ASP.NET的Debug模式
  為了方便開發調試,VS.net中對於Debug模式預設是開啟的,在部署應用程式時,應該關閉Debug模式,這將有效提高應用程式效能。
  
  9:使用ASP.Net Output Cache緩衝資料;
  提供緩衝功能是ASP.net中非常強大的一種功能。曾看到過某些評測說:ASP.net程式的效能比SUN的JSP應用程式效能快上幾倍,實際上,該評測程式非常重要的一點就是使用了很多ASP.net的緩衝功能。
  
  ASP.net中常用的緩衝方式有:
  
  n 頁面緩衝
  
  一個例子:查詢北京市的天氣。因為天氣資料在一定的時間內是相對規定的。
  
  當Web程式中第一次查詢北京市的天氣時,應用程式可能是調用一個遠端WebService擷取天氣資訊。而其後的使用者就可以從緩衝中得到當前的天氣資訊。這將大大提高效能,減少伺服器的壓力。
  
  方式:
  
  u :指明頁面使用緩衝
  
  u Duration:控制緩衝有效時間,單位為分鐘。
  
  u VaryByParam:用於指明是否緩衝的判斷依據。例如,如果第一個使用者查詢的是北京的天氣,則緩衝中儲存了北京市的天氣。當第二個使用者查詢上海的天氣時,為避免讀取到錯誤的緩衝,可以用這樣的代碼緩衝多個城市的天氣:
  
  
  這就指明了根據頁面URL中的cityName參數來緩衝多份資料。
  
  n 片斷緩衝
  
  在ASP.net中,除了在頁面範圍內使用緩衝,也還可以針對User Control使用Output Cache參數實現對使用者控制項的緩衝。同樣的,一個頁面中相同類型的控制項也可以有多個不同的緩衝。可以根據參數來實現不同的緩衝。
  
  例如:對於控制項可以根據Control 的C屬性的不同實現不同的緩衝。
  
  
  
  n 資料緩衝
  
  
  
  n 緩衝的到期依賴條件
  
  某種意義上,Cache和Application是一樣的,都是一種公有的對象。為了取得緩衝與資料有效性之間的平衡,可以根據需要對緩衝到期策略進行合理的設定。
  
  u 檔案依賴
  
  Cache.Insert (“Mydata”, Source
  
  , New CacheDependency(Server.MapPath(“authors.xml”)))
  
  此代碼的含義是當authors.xml檔案不發生變化的時候,緩衝MyData始終有效。
  
  
  
  u 時間依賴
  
  設定1小時後到期,這是一種絕對到期。
  
  Cache.Insert(“Mydata”,Source,null
  
  ,DateTime.Now.AddHours(1),TimeSpan.Zero);
  
  
  
  u 相對到期依賴
  
  當DataSet不再發生變化20分鐘以後,緩衝到期。
  
  Cache.Insert(“MyData”,Source,null
  
  ,DateTime.MaxValue,TimeSpan.FromMinutes(20));
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.