並不是在項目開發完畢後進行效能最佳化,而是在初步設計的時候考慮的問題
1 效能評測
(1) Client回應時間(TTLB-TTFB);網路頻寬和web程式因素的影響。一般不能超過8secends;
(2) 伺服器輸送量(處理請求/秒)。
2 評測方法-Stress Testing壓力測試
工具 - Web Application Stress Tool
http://www.microsoft.com/techent/treeview/default.asp?url=/technet/itsolutions/intranet/downloads/webstres.asp
ACT(VS.NET Enterprise帶有的工具)
3 效能關注
(1) CPU使用率;
(2) Request In Application Queue請求緩衝排隊,如果出現線性增長表示伺服器達到滿負荷;
(3) Request/Sec;
(4) ErrorsTotal(應=0);
4 壓力測試注意
(1) 獨立於web伺服器運行測試載入器;
(2) 類比不同的用戶端頻寬層級;
(3) 消除應用之外的任何瓶頸(例如網路)。
5 邏輯設計 建議:3層模型
page(.aspx) and User Controls (.ascx)UI
Business and Data Access classes in \bin dir
Data within a SQL Database via SPROCs
6 DataReader VS DataSet
(1) DataReader: 單向讀取;輕量快速;
(2) DataSet: 非串連的資料訪問;內部利用DataReader讀取資料;完成讀取後自動關閉;
(3) On average,a datareader is 16% faster than DataSet
7 串連池
(1) 自動緩衝/重新使用串連;
(2) 盡晚開啟串連,儘早關閉;
(3) 不同的連接字串會看成不同的串連池;
(4) 在web.config儲存單個連接字串,然後讀取;
8 使用預存程序
(1) DBA可以更輕鬆的效能調試;
(2) 防止SQL注入攻擊;
(3) 在企業管理器裡面關閉動態SQL支援,強制使用預存程序;
9 伺服器控制項效能最佳化重點
(1) ViewState
(2) Number of controls generated(especially for lists)
10 ViewState管理
(1) ASP.NET controls能夠維護頁面Control元素的狀態;
(2) 頁面PostBack,ViewState就會被提交;
(3) 好處:填寫的資訊可以再次顯示,有些資料繫結無需重新從資料庫裡面提取;
(4) 負面:增加網路負荷,伺服器效能消耗;
11 利用緩衝技術
OutputCaches
12 效能配置
debug="false"