程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 通過改善架構來提高 ASP.Net 應用程序的性能

通過改善架構來提高 ASP.Net 應用程序的性能

編輯:.NET實例教程
     有的時候我們的 Web 應用程序在本機測試的時候,速度很快,可放在局域網上測試的時候,卻會發現存在性能問題;甚至有時在局域網速度正常的應用,在廣域網上還會發現問題。這些問題一般都是應用中的疏忽或錯誤,並不涉及到系統架構,通過真實環境的調試和測試都能找到問題所在並解決。
   今天我們所要說的是通過改善架構來從根本上提高 ASP.Net 應用程序的性能。
   我們先來對 ASP.Net 的幾個簡單的應用做一下測試。
   測試環境:AthlonXP 3200+,DDR400 512M,WindowsXP SP2,本機的SQL Server 2000,中文 Northwind 數據庫(從Access導入)的產品表,約70條記錄。
  
  測試序號 程序類型 測試方法 測試結果
  (每秒請求數) SQLServer
  所占用資源 ASP.Net
  所占用資源
  1 Web服務 用產品表填充DataSet,並返回記錄數 250次 100% -
  2 Web服務 用產品表填充DataSet,並返回 DataSet 138次 54% 46%
  3 Web應用程序 用產品表填充DataSet,並綁定 DataGrid 70次 28% 72%
  說明:不同系統的測試結果可能不同,但測試結果的相對比例應該差別不大。
  
   在第一個測試裡,Web 服務只是從數據庫讀取記錄填充到 DataSet,並返回記錄數(注意不是返回記錄),所占用的系統資源很少,假設系統資源完全被SQLServer 占用,並且對結論不會有負面影響。
   在第二個測試中,Web 服務將 DataSet 返回,每秒請求數就降低了幾乎一半, 這一半的系統資源,被ASP.Net 用於將 DataSet 序列化。
   在第三個測試中,Web 應用程序將 DataSet 綁定到 DataGrid,並返回頁面,每秒請求數幾乎降低了四分之三,這些系統資源被 ASP.Net 用於將 DataSet 綁定到 DataGrid,並將頁面序列化。
  
   從以上測試中我們可以看到,DataGrid 的綁定和序列化會占用大量的系統資源,如果要提高系統性能,需要通過改善架構來實現。
  
   一、將對數據庫的操作,從頁面中分離出來,放到獨立的持久層。
   這樣在客戶端通過 DOM 或 XSLT 將數據展現為表格,來代替服務器端 DataGrid 的綁定工作,大大減輕了服務器的壓力。並且客戶端通過 AJax 從持久層獲取數據,會提高用戶的使用體驗。
   二、將頁面從數據中徹底獨立出來,以便利用緩存。
   有的應用了 AJax 的頁面還是會讀取初始數據,這樣的話頁面就不能緩存。這些頁面一般比較復雜,會比普通頁面占有更多的資源,如果能夠利用緩存,將進一步提高系統的性能。
  
   通過以上兩點,ASP.Net 的性能,幾乎能夠提高一倍。
  
   您可以自己作一下測試,或者訪問我們的示例 www.BizStruct.cn。 
  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved