根據msdn webcast 整理
邏輯/物理設計實踐
推薦 : 使用邏輯三層模型
頁面(.aspx)和用戶控件(.ascs)
可重用類型(組件)放在/bin目錄下
數據放在sql數據庫中
推薦 : 為web farm設計
不要假定訪問者永遠會回到同一服務器
注意靜態變量和應用狀態
web farm會話狀態
推薦 : 用同一個進程
應避免(可能時):
對xml web服務的同步調用
通過dcom的遠程調用
使用xml web 服務 :
因特網上應用之間的通訊
不要用于應用內通訊
推薦 : 使用isa服務器,當需要dmz安全域時 :
只允許通過isa訪問
isa隧道通過dmz到達asp.net
減少進程轉換
語言/代碼建議
避免使用晚綁定
<%@ page language = "vb" explicit = "true" %>要求聲明所有變量類型,依然允許晚綁定
<%@ page language = "vb" strict = "true" %>禁止使用任何晚綁定
com交互建議
盡量少使用com,而使用托管的組件
數據建議
將數據存儲在sql server中
選擇合適的數據訪問方式 : oledb/sql client/odbc
合理選擇dataset和datareader 進行數據訪問
狀態管理
選擇合適的方式存放session : inproc/stateserver/database
使用簡單數據類型
避免在session中保存sta的com對象
如果不需要session,則禁用它 : enablesessionstate = "false"
如果可能,可使用readonly特性 : enablesessionstate = "readonly"
哪果不需要viewstate則禁用它, enableviewstate = false
最小化viewstate中的數據
查看viewstate的大小查看html輸出源碼或者啟用trace
使用緩存
頁面緩存
部分頁面緩存
cache對象
數據緩存
webservice緩存
量化web性能的方法: 機器吞吐率響應時間通過給服務器加負載來測試
使用多臺客戶端機器加載
免費microsoft web application stress
測試多種場景
模擬對站點的端對端場景遍歷
測試單頁性能
需要計算的數值
不同負載下的request/sex(100,250,500,750,1000等同時訪問的客戶)
辨明在可接受ttfb/ttlb響應時間內的最大客戶負載
關鍵的性能計數器
處理器,cpu%使用率 || 低數值 = 受陰或者鎖競爭
asp.net,入列請求數 || 線性增長意味著服務器已滿負荷
asp.net應用,每秒請求數||動態吞吐量(應當一致)
asp.net應用,總錯誤數 || 指示功能錯誤(應當是0)
asp.net應用,工作進程重啟 || 指示嚴重功能錯誤
新聞熱點
疑難解答
圖片精選