【原创】构建高性能ASP.NET站点 开篇
?
構建高性能ASP.NET站點 開篇
?
前言:有段時間沒有寫ASP.NET的東西了,心里總是覺得缺少了什么,畢竟自己對ASP.NET還是情有獨鐘的. 在本系列文章中,準備比較全面的講述ASP.NET的性能的優化,從前臺到后臺,以后本列文也看作為大家的一個手冊來查詢!
?
?
系列文章鏈接:
構建高性能ASP.NET站點 開篇
構建高性能ASP.NET站點之一 剖析頁面的處理過程(前端)
構建高性能ASP.NET站點之二 優化HTTP請求(前端)
構建高性能ASP.NET站點之三 細節決定成敗
構建高性能ASP.NET站點 第五章—性能調優綜述(前篇)
大型高性能ASP.NET系統架構設計 ?
構建高性能ASP.NET站點 第五章—性能調優綜述(中篇)
構建高性能ASP.NET站點 第五章—性能調優綜述(后篇)?
構建高性能ASP.NET站點 第六章—性能瓶頸診斷與初步調優(上篇)—識別性能瓶頸
構建高性能ASP.NET站點 第六章—性能瓶頸診斷與初步調優(下前篇)—簡單的優化措施
構建高性能ASP.NET站點 第六章—性能瓶頸診斷與初步調優(下后篇)—減少不必要的請求
構建高性能ASP.NET站點 第七章 如何解決內存的問題(前篇)—托管資源優化—垃圾回收機制深度剖析
構建高性能ASP.NET站點 第七章 如何解決內存的問題(前中篇)—托管資源優化—監測CLR性能
?
?
?
本篇的議題如下:
網站優化需要考慮的方面
?
網站優化需要考慮的方面
?
在用ASP.NET開發網站的時候,性能是永遠需要考慮和關注的問題,性能不僅僅只是程序代碼執行時候的速度,而是涉及到方方面面的東西。
?
就拿ASP.NET的一個請求來講,從瀏覽器向服務器的ASP.NET網站發送請求開始一直到最后整個頁面呈現在我們面前,其中請求經過的每一個步驟,都是有不同的調優方式的,而且調用的方法也很多,不僅僅只是常見的:緩存,多線程,異步等。
?
本系列的文章決定從兩個大的方面來講述調優:
前臺調優:主要包含如何盡量的減少http請求,從http請求開始,到如何加載js, css,如何壓縮傳輸的數據等。
?
后臺調優:分析ASP.NET請求的處理過程,并在每一步給出相應的調優方法,而且在代碼組織,架構和數據庫的操作上面給出調優的方法。
?
記得在剛剛開發網站的時候,一提到提高性能,最容易也是最快想到的就是緩存,而且在微軟官方的Best Practice的一些文檔中也是建議:層層緩存(在數據存儲層,DAL,BLL,UI等都要緩存)。然后在網站中就”緩存遍地開花”,最后的確實不盡人意。
?
另外的一個常見的優化針對數據庫的:如盡量減少子查詢,使用join聯接;在常常需要查詢的字段上面建立索引。確實,這些是很通用,也不錯的一些規則。
?
而且還有一個體會就是,在優化性能的時候,如果選擇優化代碼和數據庫,往往優化數據庫的一些操作帶來的效果會更加的好,很可惜的是:在項目中(至少在我開發的一些項目中),數據庫僅僅就只是一個數據的存儲設備而已,僅此而已,沒有發揮出數據庫的強大作用。所以還是建議對數據庫的內部查詢和存儲的機制要熟悉,畢竟很多時候開發人員也擔任了DBA的工作(很多公司沒有正式的DBA)。
?
而且在項目中我們設計數據庫的時候,特別是表字段的時候,是需要有些考慮的,很多人建議表字段的長度不要太長,這也是大家常見的建議,但是為什么?其實,這就需要懂得一些數據庫的內部存儲機制了:在數據庫(SQL SERVER )保存的時候,數據是以”頁”為最小的單位的,每一頁有8K的大小,如果你的一個表中的數據超過8K,那么這個表的數據就要分幾個頁面保存,這樣在對數據進行查詢的時候,就要跨頁查詢了,跨頁是需要性能消耗的,如果數據都在一個頁面上,那么速度肯定快些。
?
所以,要優化網站,就得知道性能消耗在哪里。
?
當優化的一個網站的時候,不是盲目的一概而論的,一般來說有兩種情況:
1.?網站已經存在了,并且運行了,現在要優化。
2.?正在從頭開發一個新的網站。
?
如果是第一種情況,那么首先要找出網站性能的瓶頸,從前臺的請求的到后臺的請求處理,一直到最后頁面的呈現,都要一步步的審查。
?
如果是第二種情況,可能情況就稍微好一點,并且網站現在完全由我們控制,所有在開發和設計的過程中就可以采用很多的優化原則來優化。
?
優化不一定就是代碼重寫或者做些很大的改動,優化時一點點的累積的,就好比代碼的重構一樣,都是一個積累的效果。比如,是在頁面一開始的時候載入js腳本,還是在整個頁面的最后載入js腳本,有時候往往就只是簡單的調整一下載入的文件,或者異步的載入腳本,或者通過CDN傳輸腳本等等方法,性能就提升了。性能的提升也不是沒有代價的,有的代價很小,例如只是把腳本的載入放在頁面最后,大的代價就是,例如買些服務器設備,如Content Delivery Network(CDN)來把靜態的文件(js,css,image)傳送到客戶端。所以說,優化需要權衡策略。
?
不知道大家是否有過這樣的體會:當看著自己開發出來的系統性能很好的時候,自己是很自信的,相反,如果系統很慢,有時真不想說這個系統是自己做的。
?
本篇是系列開篇,只是閑談了一些優化的一些話題,實際的知識沒有講多少,希望大家見諒。
下篇開始,我們就開始優化之旅,敬請關注! :)
?
版權為小洋和博客園所有,歡迎轉載,轉載請標明出處給作者。
http://www.cnblogs.com/yanyangtian
?
?
?
?
總結
以上是生活随笔為你收集整理的【原创】构建高性能ASP.NET站点 开篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重新想象 Windows 8 Store
- 下一篇: 数字证书认证中心的作用是什么