應(yīng)用程式性能提高與緩存應(yīng)用_第1頁
應(yīng)用程式性能提高與緩存應(yīng)用_第2頁
應(yīng)用程式性能提高與緩存應(yīng)用_第3頁
應(yīng)用程式性能提高與緩存應(yīng)用_第4頁
應(yīng)用程式性能提高與緩存應(yīng)用_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、應(yīng)用程式性能提高與緩存應(yīng)用大綱影響性能的主要原因及分析服務(wù)器端緩存的使用數(shù)據(jù)庫(kù)緩存的使用服務(wù)器優(yōu)化的若干建議總結(jié)影響性能的主要原因及分析URL請(qǐng)求過程客戶機(jī)網(wǎng)絡(luò)WEB服務(wù)器發(fā)送請(qǐng)求URL路由解析資料庫(kù)服務(wù)器網(wǎng)絡(luò)請(qǐng)求數(shù)據(jù)返回?cái)?shù)據(jù)返回HTML解析HTML跟踞請(qǐng)求找到對(duì)應(yīng)的文件解析文件執(zhí)行T-SQL影響性能的主要原因及分析服務(wù)器響應(yīng)時(shí)間過長(zhǎng)服務(wù)器運(yùn)算量過大頁面獲取的數(shù)據(jù)獲取時(shí)間過長(zhǎng)網(wǎng)絡(luò)傳輸問題網(wǎng)絡(luò)傳輸質(zhì)量不好傳輸數(shù)據(jù)量過大本地系統(tǒng)問題本地硬件配置過低頁面具有性能設(shè)置缺陷WEB服務(wù)器端優(yōu)化建議A的編譯服務(wù)器緩存的使用壓縮ASP.NET的編譯默認(rèn)編譯就地預(yù)編譯可更新UI完全預(yù)編譯不可更新UI的預(yù)編譯編譯

2、為固定名稱的程序集ASP.NET的編譯詳細(xì)說明ASP.NET緩存緩存是在內(nèi)存中存儲(chǔ)很耗時(shí)創(chuàng)建的數(shù)據(jù)的一項(xiàng)技術(shù),也是ASP.NET一個(gè)重要特性。例如,你可以緩存那些耗時(shí)的復(fù)雜查詢出來的數(shù)據(jù),之后的請(qǐng)求不必再?gòu)臄?shù)據(jù)庫(kù)中取數(shù),直接從緩存中取。通過緩存,可以大大提高應(yīng)該程序的性能。服務(wù)器緩存的使用緩存的分類頁面級(jí)別的緩存用戶控件級(jí)別的緩存(片段緩存)使用緩存的二種形式使用 OutputCache指令使用緩存API服務(wù)器緩存的使用緩存的實(shí)現(xiàn)方式ApplicationCacheSessionCookieViewState靜態(tài)類OutputCache指令 OutputCache指令Duration: 頁或用

3、戶控件進(jìn)行緩存的時(shí)間(以秒計(jì))。在頁或用戶控件上設(shè)置該屬性為來自對(duì)象的HTTP 響應(yīng)建立了一個(gè)過期策略,并將自動(dòng)緩存頁或用戶控件輸出。注意: (排除設(shè)置屬性Location=None以外)該屬性是必需的。如果未包含該屬性,將出現(xiàn)分析器錯(cuò)誤。說明: Duration=10 表示頁面緩存10秒.這是什么意思呢,就是說當(dāng)?shù)谝粋€(gè)用戶提交頁面請(qǐng)求後,後面10秒內(nèi)所有用戶訪問該頁面時(shí)都使用第一個(gè)用戶的提交的資料.而不使用自己所提交的資料DEMO: Duration.aspxOutputCache指令Location:用于指定輸出緩存項(xiàng)的位置;OutputCacheLocation 枚舉值之一。默認(rèn)值為An

4、y。Any:頁面被緩存在瀏覽器、代理服務(wù)器端和web服務(wù)器端();Client: 緩存在瀏覽器;DownStream: 頁面被緩存在瀏覽器和任何的代理服務(wù)器端;ServerAndClient: 頁面被緩存在瀏覽器和web服務(wù)器端;None: 頁面不緩存, Location當(dāng)被設(shè)置為None時(shí),其余的任何設(shè)置將不起作用警告包含在用戶控件(.ascx 文件)中的 OutputCache 指令不支持此屬性。OutputCache指令Shared:共享用戶控件,一個(gè)布爾值,確定用戶控件輸出是否可以由多個(gè)頁共享。默認(rèn)值為 false。說明:當(dāng)在ascx文件中加入後表示這個(gè)控件將在第一個(gè)人訪問後的十秒呢共

5、享數(shù)據(jù)DEMO: Shared01.aspxOutputCache指令VaryByParam:指頁面根據(jù)使用POST或GET發(fā)送的名稱/值對(duì)(參數(shù))來更新緩存的內(nèi)容,多個(gè)參數(shù)使用分號(hào)分開。如果不希望使用任何參數(shù)來改變緩存內(nèi)容,請(qǐng)將值設(shè)置為none;如果希望通過所有參數(shù)值來改變緩存內(nèi)容,請(qǐng)將值設(shè)置為*說明:當(dāng)?shù)谝粋€(gè)用戶提交頁面請(qǐng)求後,後面10秒內(nèi)所有用戶訪問該頁面時(shí)都使用第一個(gè)用戶的提交的資料.而不使用自己所提交的資料:當(dāng)?shù)谝粋€(gè)用戶提交頁面請(qǐng)求後,後面10秒內(nèi)所有用戶訪問該頁面時(shí)只要用戶提交和參數(shù)變化了,那麼就不使用前一個(gè)用戶的參數(shù),其實(shí)這樣等於沒有使用緩存了:當(dāng)?shù)谝粋€(gè)用戶提交頁面請(qǐng)求後,後面1

6、0秒內(nèi)所有用戶訪問該頁面時(shí)只要用戶提交的參數(shù)中指定的參數(shù)a與前一個(gè)參數(shù)a不一樣,那麼不使用緩存,否則就使用緩存DEMO: VaryByParam.aspxOutputCache指令VaryByControl: 該屬性使用一個(gè)分號(hào)分隔的字符串列表來更改表單控件的輸出緩存。這些字符串代表在表單控件中聲明的ASP.NET服務(wù)器控件的ID屬性值。除非已經(jīng)包含了VaryByParam屬性,否則在 OutputCache指令中,該屬性是必需的。說明: 第一個(gè)用戶提交頁面請(qǐng)求後,後面10秒內(nèi)所有用戶訪問該頁面時(shí)只要表單控件的值沒改變,那麼不使用緩存,否則就使用緩存DEMO: VaryByControl.as

7、px / VaryByParamControl.aspxOutputCache指令VaryByHeader :該屬性中包含由分號(hào)分隔的HTTP標(biāo)頭列表,用于使輸出緩存發(fā)生變化。當(dāng)將該屬性設(shè)為多標(biāo)頭時(shí),對(duì)于每個(gè)指定的標(biāo)頭,輸出緩存都包含一個(gè)請(qǐng)求文檔的不同版本。VaryByHeader屬性在所有HTTP 1.1緩存中啟用緩存項(xiàng),而不僅限于ASP.NET緩存。用戶控件中的 OutputCache指令不支持此屬性。Accept-Language: 代表請(qǐng)求頁面中用戶最希望的有優(yōu)先級(jí)順序的人類語言列表;User-Agent: 代表請(qǐng)求頁面設(shè)備的類型;Cookie: 代表當(dāng)前域名下創(chuàng)建的瀏覽器的cooki

8、e項(xiàng)。說明: 第一個(gè)用戶提交頁面請(qǐng)求後,後面30秒內(nèi)所有用戶訪問該頁面時(shí)只要IE語言沒有改變,那麼不使用緩存,否則就使用緩存IE語言設(shè)置:IE-工具-Internet選項(xiàng)-常規(guī)-語言DEMO: VaryByHeader.aspxOutputCache指令VaryByCustom: 用于自定義輸出緩存要求的任意文本。如果賦予該屬性值是browser,緩存將隨瀏覽器名稱和主要版本信息的不同而異。如果輸入了自定義字符串,則必須在 應(yīng)用程序的Global.asax文件中重寫HttpApplication.GetVaryByCustomString方法。說明: 第一個(gè)用戶提交頁面請(qǐng)求後,後面30秒內(nèi)所有

9、用戶訪問該頁面時(shí)只要HttpApplication.GetVaryByCustomString返回的字符串沒有改變,那麼不使用緩存,否則就使用緩存DEMO: VaryByCustom.aspxOutputCache指令CacheProfile : 用于定義與該頁關(guān)聯(lián)的緩存設(shè)置的名稱。是可選屬性,默認(rèn)值為空字符()。需要注意的是,包含在用戶控件中的 OutputCache指令不支持此屬性。在頁面中指定此屬性時(shí),屬性值必須與Web.config文件outputCacheSettings配置 節(jié)下的outputCacheProfiles元素中的一個(gè)可用項(xiàng)的名稱匹配。如果此名稱與配置文件項(xiàng)不匹配,將引

10、發(fā)異常。DEMO: CacheProOutputCache指令SqlDependency: 指定緩存失效的數(shù)據(jù)庫(kù)依賴項(xiàng)??梢跃唧w到數(shù)據(jù)庫(kù)和表 Web.config設(shè)置 為資料庫(kù)設(shè)置設(shè)置緩存 Visual Studio 命令工具中執(zhí)行aspnet_regsql -S 2 -U sa -P 000000 -ed -d MyTest -et -t Employees將生產(chǎn)表AspNet_SqlCacheTablesForChangeNotification與一序列存儲(chǔ)過程頁面使用DEMO: SqlDependency.aspxCache類對(duì)于每個(gè)應(yīng)用程序域均創(chuàng)建該類的一個(gè)實(shí)例,并且只要對(duì)應(yīng)的應(yīng)用程序

11、域保持活動(dòng),該實(shí)例便保持有效。有關(guān)此類實(shí)例的信息通過 HttpContext 對(duì)象的 Cache 屬性或 Page 對(duì)象的 Cache 屬性來提供。方法Add:將指定項(xiàng)添加到Cache對(duì)象,該對(duì)象具有依賴項(xiàng)、過期和優(yōu)先級(jí)策略以及一個(gè)委托(可用于在從Cache移除插入項(xiàng)時(shí)通知應(yīng)用程序)。如果Cache中已保存了具有相同key參數(shù)的項(xiàng),則對(duì)此方法的調(diào)用將失敗。若要使用相同的key參數(shù)改寫現(xiàn)有的Cache項(xiàng),請(qǐng)使用Insert方法.Insert:向Cache對(duì)象插入項(xiàng)。使用此方法的某一版本改寫具有相同key參數(shù)的現(xiàn)有Cache項(xiàng)。Remove:從應(yīng)用程序的Cache對(duì)象移除指定項(xiàng)。Item/Get:

12、提供通過Name找到Value的方法Cache類將內(nèi)容添加到Cache中通過指定其鍵和值將項(xiàng)添加到緩存中Cache鍵名稱 = 值;通過使用 Insert 方法將項(xiàng)添加到緩存中 Cache.Insert(鍵名稱, 值); Cache.Add( KeyName,/緩存名 KeyValue,/要緩存的對(duì)象 Dependencies,/依賴項(xiàng) AbsoluteExpiration,/絕對(duì)過期時(shí)間 SlidingExpiration,/相對(duì)過期時(shí)間 Priority,/優(yōu)先級(jí) CacheItemRemovedCallback /緩存過期引發(fā)事件);CacheDependency類如果向緩存添加一個(gè)依賴于另一個(gè)對(duì)象(如文件或文件數(shù)組)的項(xiàng),則在該對(duì)象更改時(shí)會(huì)自動(dòng)從緩存中移除該依賴項(xiàng)。注意:可以使用Add或Insert來向應(yīng)用程序緩存中添加依賴項(xiàng),但不可以使用Item來添加靜態(tài)類、Cache、Application生命周期連接壓縮壓縮分類GZipDeflate壓縮協(xié)商服務(wù)器怎么知道瀏覽器能夠接收壓縮內(nèi)容?瀏覽器怎么知道接收的內(nèi)容是壓縮過的?當(dāng)支持壓縮的瀏覽器向服務(wù)器發(fā)送請(qǐng)求時(shí),會(huì)包含一個(gè)Accept-Encoding請(qǐng)求頭,告訴服務(wù)器它支持的壓縮算法例如:Accept-Encoding: gzip,deflat

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論