并不是在項(xiàng)目開(kāi)發(fā)完畢后進(jìn)行性能優(yōu)化,而是在初步設(shè)計(jì)的時(shí)候考慮的問(wèn)題
1 性能評(píng)測(cè)
(1) Client響應(yīng)時(shí)間(TTLB-TTFB);網(wǎng)絡(luò)帶寬和web程序因素的影響。一般不能超過(guò)8secends;
(2) 服務(wù)器吞吐量(處理請(qǐng)求/秒)。
2 評(píng)測(cè)方法-Stress Testing壓力測(cè)試
工具 - Web Application Stress Tool
http://www.microsoft.com/techent/treeview/default.asp?url=/technet/itsolutions/intranet/downloads/webstres.asp
ACT(VS.NET Enterprise帶有的工具)
3 性能關(guān)注
(1) CPU使用率;
(2) Request In Application Queue請(qǐng)求緩存排隊(duì),如果出現(xiàn)線(xiàn)性增長(zhǎng)表示服務(wù)器達(dá)到滿(mǎn)負(fù)荷;
(3) Request/Sec;
(4) ErrorsTotal(應(yīng)=0);
4 壓力測(cè)試注意
(1) 獨(dú)立于web服務(wù)器運(yùn)行測(cè)試工具;
(2) 模擬不同的客戶(hù)端帶寬級(jí)別;
(3) 消除應(yīng)用之外的任何瓶頸(例如網(wǎng)絡(luò))。
5 邏輯設(shè)計(jì) 建議: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: 非連接的數(shù)據(jù)訪(fǎng)問(wèn);內(nèi)部利用DataReader讀取數(shù)據(jù);完成讀取后自動(dòng)關(guān)閉;
(3) On average,a datareader is 16% faster than DataSet
7 連接池
(1) 自動(dòng)緩存/重新使用連接;
(2) 盡晚打開(kāi)連接,盡早關(guān)閉;
(3) 不同的連接字符串會(huì)看成不同的連接池;
(4) 在web.config存儲(chǔ)單個(gè)連接字符串,然后讀??;
8 使用存儲(chǔ)過(guò)程
(1) DBA可以更輕松的性能調(diào)試;
(2) 防止SQL注入攻擊;
(3) 在企業(yè)管理器里面關(guān)閉動(dòng)態(tài)SQL支持,強(qiáng)制使用存儲(chǔ)過(guò)程;
9 服務(wù)器控件性能優(yōu)化重點(diǎn)
(1) ViewState
(2) Number of controls generated(especially for lists)
10 ViewState管理
(1) ASP.NET controls能夠維護(hù)頁(yè)面Control元素的狀態(tài);
(2) 頁(yè)面PostBack,ViewState就會(huì)被提交;
(3) 好處:填寫(xiě)的信息可以再次顯示,有些數(shù)據(jù)綁定無(wú)需重新從數(shù)據(jù)庫(kù)里面提?。?br>(4) 負(fù)面:增加網(wǎng)絡(luò)負(fù)荷,服務(wù)器性能消耗;
11 利用緩存技術(shù)
OutputCaches
12 性能配置
debug="false"
浙公網(wǎng)安備 33010602011771號(hào)