asp.net最佳化探討系列(3) 我想說可能我在組織這個系列的時候沒什麼經驗,畢竟這是自己第一次嘗試總結一個小小的系列,我希望有一個好的開始,所以我經過一定的考慮,勇敢地發上了首頁。(幸虧dudu沒那麼快移走)呵呵,還記得那時候我剛上園子的時候,首頁的文章確實是很大一部分難看懂,畢竟要有一定的基礎,所以有時候簡單點地文章看起來容易點!^_^
好啦,頂住,繼續總結!
編碼細節最佳化
資料訪問:首先資料庫的串連是很耗資源的,當然,我們有資料連線池,操作資料庫串連不會真地去訪問資料庫建立串連。不過要知道其串連數可是有限的,所以我們應該盡量地晚點開啟串連,並且儘早地關閉掉它!Code
1using(SqlConnection con=new SqlConnection())
2{
3SqlCommand cmd=new SqlCommand("select * from table",con);
4.
5con.Open();
6cmd.ExecuteNonQuery();
7con.close();
8}
而不是將con.Open();放在省略符號前面。
還有大家看看上面那句“select * from table”,寫這句真是很爽啊,簡單就把資料查詢搞定,但是我們卻把所有的欄位都返回了,資料多了不少,增加了資料庫地壓力。
編碼相關:
1.你還在try嗎,這個東西也是會損失一定的效能的,我們編碼的時候一般都會對編碼部分將要產生的錯誤有預見,可以用你的代碼來解決,所以能免則免!
2.現在有泛型了,效率比原來的非泛型高了不少,避免了裝箱和拆箱的效能損失!
3.字串串連:大量的字串串連,用StringBuilder肯定比string好,呵呵,廢話,那麼講下原因,因為string串連時會產生一個臨時的字串在儲存結果,消耗記憶體!
伺服器的最佳化點滴
分布式:一般我們都是將商業邏輯和資料訪問等層部署在同一台伺服器上,那麼所有的壓力全都集中在這台伺服器上了,縱使他再強,也是捉襟見肘,難免承受不住!ok,現在有了wcf,再加上web service 和remoting,我們有很多選擇,可以建立個web service ,將商業邏輯或資料訪問放置其中,然後將其部署在另一台伺服器。這樣層層伺服器之間的調用,分擔了一定的壓力!
靜態資源:圖片,音頻檔案等,如果部署在其他伺服器上,那麼壓力是不是也減輕了不少呢,起碼對顯示層的請求檔案數少了!呵呵
頁面結構(有點離題)
js載入:因為頁面的顯示是第一位的,所以應該將其放在頁面最後,或者可以利用Dom,或服務端動態載入!
css:樣式與結構分離,好處不用說,頁面非常整潔,樣式也比較統一,有的人甚至喜歡將樣式分為基本樣式,配置樣式,內容樣式等css檔案,不過我喜歡堆在一起,分兩個版本,一個是壓縮過的,一個是沒壓縮過的,用來方便以後的修改!這樣既減少請求數,又有利於維護!