自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

構(gòu)建高性能ASP.NET站點(diǎn) 網(wǎng)站優(yōu)化需要考慮的方面

開(kāi)發(fā) 后端
在用ASP.NET開(kāi)發(fā)網(wǎng)站的時(shí)候,性能是永遠(yuǎn)需要考慮和關(guān)注的問(wèn)題,性能不僅僅只是程序代碼執(zhí)行時(shí)候的速度,而是涉及到方方面面的東西。本文從前臺(tái)到后臺(tái),比較全面的講述ASP.NET的性能的優(yōu)化。

  網(wǎng)站優(yōu)化需要考慮的方面

  在用ASP.NET開(kāi)發(fā)網(wǎng)站的時(shí)候,性能是永遠(yuǎn)需要考慮和關(guān)注的問(wèn)題,性能不僅僅只是程序代碼執(zhí)行時(shí)候的速度,而是涉及到方方面面的東西。

  就拿ASP.NET的一個(gè)請(qǐng)求來(lái)講,從瀏覽器向服務(wù)器的ASP.NET網(wǎng)站發(fā)送請(qǐng)求開(kāi)始一直到***整個(gè)頁(yè)面呈現(xiàn)在我們面前,其中請(qǐng)求經(jīng)過(guò)的每一個(gè)步驟,都是有不同的調(diào)優(yōu)方式的,而且調(diào)用的方法也很多,不僅僅只是常見(jiàn)的:緩存,多線程,異步等。

  本文決定從兩個(gè)大的方面來(lái)講述調(diào)優(yōu):

  前臺(tái)調(diào)優(yōu):主要包含如何盡量的減少http請(qǐng)求,從http請(qǐng)求開(kāi)始,到如何加載js, css,如何壓縮傳輸?shù)臄?shù)據(jù)等。

  后臺(tái)調(diào)優(yōu):分析ASP.NET請(qǐng)求的處理過(guò)程,并在每一步給出相應(yīng)的調(diào)優(yōu)方法,而且在代碼組織,架構(gòu)和數(shù)據(jù)庫(kù)的操作上面給出調(diào)優(yōu)的方法。

  記得在剛剛開(kāi)發(fā)網(wǎng)站的時(shí)候,一提到提高性能,最容易也是最快想到的就是緩存,而且在微軟官方的Best Practice的一些文檔中也是建議:層層緩存(在數(shù)據(jù)存儲(chǔ)層,DAL,BLL,UI等都要緩存)。然后在網(wǎng)站中就”緩存遍地開(kāi)花”,***的確實(shí)不盡人意。

  另外的一個(gè)常見(jiàn)的優(yōu)化針對(duì)數(shù)據(jù)庫(kù)的:如盡量減少子查詢,使用join聯(lián)接;在常常需要查詢的字段上面建立索引。確實(shí),這些是很通用,也不錯(cuò)的一些規(guī)則。

  而且還有一個(gè)體會(huì)就是,在優(yōu)化性能的時(shí)候,如果選擇優(yōu)化代碼和數(shù)據(jù)庫(kù),往往優(yōu)化數(shù)據(jù)庫(kù)的一些操作帶來(lái)的效果會(huì)更加的好,很可惜的是:在項(xiàng)目中(至少在我開(kāi)發(fā)的一些項(xiàng)目中),數(shù)據(jù)庫(kù)僅僅就只是一個(gè)數(shù)據(jù)的存儲(chǔ)設(shè)備而已,僅此而已,沒(méi)有發(fā)揮出數(shù)據(jù)庫(kù)的強(qiáng)大作用。所以還是建議對(duì)數(shù)據(jù)庫(kù)的內(nèi)部查詢和存儲(chǔ)的機(jī)制要熟悉,畢竟很多時(shí)候開(kāi)發(fā)人員也擔(dān)任了DBA的工作(很多公司沒(méi)有正式的DBA)。

  而且在項(xiàng)目中我們?cè)O(shè)計(jì)數(shù)據(jù)庫(kù)的時(shí)候,特別是表字段的時(shí)候,是需要有些考慮的,很多人建議表字段的長(zhǎng)度不要太長(zhǎng),這也是大家常見(jiàn)的建議,但是為什么?其實(shí),這就需要懂得一些數(shù)據(jù)庫(kù)的內(nèi)部存儲(chǔ)機(jī)制了:在數(shù)據(jù)庫(kù)(SQL SERVER )保存的時(shí)候,數(shù)據(jù)是以”頁(yè)”為最小的單位的,每一頁(yè)有8K的大小,如果你的一個(gè)表中的數(shù)據(jù)超過(guò)8K,那么這個(gè)表的數(shù)據(jù)就要分幾個(gè)頁(yè)面保存,這樣在對(duì)數(shù)據(jù)進(jìn)行查詢的時(shí)候,就要跨頁(yè)查詢了,跨頁(yè)是需要性能消耗的,如果數(shù)據(jù)都在一個(gè)頁(yè)面上,那么速度肯定快些。

  所以,要優(yōu)化網(wǎng)站,就得知道性能消耗在哪里。

  當(dāng)優(yōu)化的一個(gè)網(wǎng)站的時(shí)候,不是盲目的一概而論的,一般來(lái)說(shuō)有兩種情況:

  1. 網(wǎng)站已經(jīng)存在了,并且運(yùn)行了,現(xiàn)在要優(yōu)化。

  2. 正在從頭開(kāi)發(fā)一個(gè)新的網(wǎng)站。

  如果是***種情況,那么首先要找出網(wǎng)站性能的瓶頸,從前臺(tái)的請(qǐng)求的到后臺(tái)的請(qǐng)求處理,一直到***頁(yè)面的呈現(xiàn),都要一步步的審查。

  如果是第二種情況,可能情況就稍微好一點(diǎn),并且網(wǎng)站現(xiàn)在完全由我們控制,所有在開(kāi)發(fā)和設(shè)計(jì)的過(guò)程中就可以采用很多的優(yōu)化原則來(lái)優(yōu)化。

  優(yōu)化不一定就是代碼重寫(xiě)或者做些很大的改動(dòng),優(yōu)化時(shí)一點(diǎn)點(diǎn)的累積的,就好比代碼的重構(gòu)一樣,都是一個(gè)積累的效果。比如,是在頁(yè)面一開(kāi)始的時(shí)候載入js腳本,還是在整個(gè)頁(yè)面的***載入js腳本,有時(shí)候往往就只是簡(jiǎn)單的調(diào)整一下載入的文件,或者異步的載入腳本,或者通過(guò)CDN傳輸腳本等等方法,性能就提升了。性能的提升也不是沒(méi)有代價(jià)的,有的代價(jià)很小,例如只是把腳本的載入放在頁(yè)面***,大的代價(jià)就是,例如買(mǎi)些服務(wù)器設(shè)備,如Content Delivery Network(CDN)來(lái)把靜態(tài)的文件(js,css,image)傳送到客戶端。所以說(shuō),優(yōu)化需要權(quán)衡策略。

  不知道大家是否有過(guò)這樣的體會(huì):當(dāng)看著自己開(kāi)發(fā)出來(lái)的系統(tǒng)性能很好的時(shí)候,自己是很自信的,相反,如果系統(tǒng)很慢,有時(shí)真不想說(shuō)這個(gè)系統(tǒng)是自己做的。

【編輯推薦】

  1. 高性能ASP.NET站點(diǎn)構(gòu)建之優(yōu)化HTTP請(qǐng)求
  2. 高性能ASP.NET站點(diǎn)構(gòu)建之簡(jiǎn)單的優(yōu)化措施
  3. 高性能ASP.NET站點(diǎn)構(gòu)建之性能調(diào)優(yōu)綜述
  4. 11.1 網(wǎng)站優(yōu)化前的準(zhǔn)備
  5. 高性能ASP.NET站點(diǎn)構(gòu)建之開(kāi)篇
責(zé)任編輯:韓亞珊 來(lái)源: CSDN
相關(guān)推薦

2011-06-15 13:17:36

ASP.NET

2011-02-22 09:16:24

高性能ASP.NET

2011-02-13 09:37:55

ASP.NET

2011-02-17 09:13:57

ASP.NET

2011-02-13 09:17:02

ASP.NET

2011-02-23 09:49:40

ASP.NET

2011-02-15 09:31:56

ASP.NET

2011-02-16 09:08:27

ASP.NET

2011-02-14 09:32:16

ASP.NET

2011-06-28 15:06:09

ASP.NET網(wǎng)站優(yōu)化

2010-07-22 09:13:00

ASP.NET

2011-06-28 15:14:10

ASP.NET性能優(yōu)化

2016-05-20 14:20:31

ASP.NET建議

2012-12-24 09:23:27

ASP.NETC#IIS

2024-06-11 09:00:00

異步編程代碼

2011-09-08 13:56:41

ASP.NET性能

2024-12-05 08:14:41

2018-02-23 13:55:16

ASP.NET性能優(yōu)化技巧

2009-08-13 15:49:18

ASP.NET性能優(yōu)化

2011-10-19 09:41:15

ASP.NET性能優(yōu)化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)