应用程式性能提高与缓存应用.pptx_第1页
应用程式性能提高与缓存应用.pptx_第2页
应用程式性能提高与缓存应用.pptx_第3页
应用程式性能提高与缓存应用.pptx_第4页
应用程式性能提高与缓存应用.pptx_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、應用程式性能提高與緩存應用,主讲:何利民,大綱,影响性能的主要原因及分析 服务器端缓存的使用 数据库缓存的使用 服务器优化的若干建议 总结,URL請求過程,客戶機,網絡,WEB服務器,發送請求,URL路由解析,資料庫服務器,網絡,請求數據,返回數據,返回HTML,解析HTML,跟踞請求找到對應的文件,解析文件,執行T-SQL,影响性能的主要原因及分析,服务器响应时间过长 服务器运算量过大 页面获取的数据获取时间过长 网络传输问题 网络传输质量不好 传输数据量过大 本地系统问题 本地硬件配置过低 页面具有性能设置缺陷,WEB服务器端优化建议,A的編譯 服務器緩存的使用 壓縮,ASP.NET的编译

2、,默认编译 就地预编译 可更新UI完全预编译 不可更新UI的预编译 编译为固定名称的程序集,ASP.NET的编译,ASP.NET緩存,缓存是在内存中存储很耗时创建的数据的一项技术,也是ASP.NET一个重要特性。例如,你可以缓存那些耗时的复杂查询出来的数据,之后的请求不必再从数据库中取数,直接从缓存中取。通过缓存,可以大大提高应该程序的性能,服務器緩存的使用,緩存的分類 頁面級別的緩存 用戶控件級別的緩存(片段緩存) 使用緩存的二種形式 使用 OutputCache指令 使用緩存API,服務器緩存的使用,緩存的實現方式 Application Cache Session Cookie View

3、State 靜態類,OutputCache指令,OutputCache指令,Duration: 页或用户控件进行缓存的时间(以秒计)。在页或用户控件上设置该属性为来自对象的HTTP 响应建立了一个过期策略,并将自动缓存页或用户控件输出。 注意: (排除設置屬性Location=None以外)该属性是必需的。如果未包含该属性,将出现分析器错误。 說明: Duration=10 表示頁面緩存10秒.這是什么意思呢,就是說當第一個用戶提交頁面請求後,後面10秒內所有用戶訪問該頁面時都使用第一個用戶的提交的資料.而不使用自己所提交的資料 DEMO: Duration.aspx,OutputCache指

4、令,Location:用于指定输出缓存项的位置;OutputCacheLocation 枚举值之一。默认值为Any。 Any:页面被缓存在浏览器、代理服务器端和web服务器端(); Client: 缓存在浏览器; DownStream: 页面被缓存在浏览器和任何的代理服务器端; ServerAndClient: 页面被缓存在浏览器和web服务器端; None: 页面不缓存, Location当被设置为None时,其余的任何设置将不起作用 警告包含在用户控件(.ascx 文件)中的 OutputCache 指令不支持此属性,OutputCache指令,Shared:共享用戶控件,一个布尔值,确定

5、用户控件输出是否可以由多个页共享。默认值为 false。 說明:當在ascx文件中加入後表示這個控件將在第一個人訪問後的十秒呢共享數據 DEMO: Shared01.aspx,OutputCache指令,VaryByParam:指頁面根據使用POST或GET發送的名稱/值對(參數)來更新緩存的內容,多個參數使用分號分開。如果不希望使用任何參數來改變緩存內容,請將值設置為none;如果希望通過所有參數值來改變緩存內容,請將值設置為* 說明 :當第一個用戶提交頁面請求後,後面10秒內所有用戶訪問該頁面時都使用第一個用戶的提交的資料.而不使用自己所提交的資料 :當第一個用戶提交頁面請求後,後面10秒

6、內所有用戶訪問該頁面時只要用戶提交和參數變化了,那麼就不使用前一個用戶的參數,其實這樣等於沒有使用緩存了 :當第一個用戶提交頁面請求後,後面10秒內所有用戶訪問該頁面時只要用戶提交的參數中指定的參數a與前一個參數a不一樣,那麼不使用緩存,否則就使用緩存 DEMO: VaryByParam.aspx,OutputCache指令,VaryByControl: 该属性使用一个分号分隔的字符串列表来更改表單控件的输出缓存。这些字符串代表在表單控件中声明的ASP.NET服务器控件的ID属性值。除非已经包含了VaryByParam属性,否则在 OutputCache指令中,该属性是必需的。 說明: 第一個

7、用戶提交頁面請求後,後面10秒內所有用戶訪問該頁面時只要表單控件的值沒改變,那麼不使用緩存,否則就使用緩存 DEMO: VaryByControl.aspx / VaryByParamControl.aspx,OutputCache指令,VaryByHeader :该属性中包含由分号分隔的HTTP标头列表,用于使输出缓存发生变化。当将该属性设为多标头时,对于每个指定的标头,输出缓存都包含一个请求文档的不同版本。VaryByHeader属性在所有HTTP 1.1缓存中启用缓存项,而不仅限于ASP.NET缓存。用户控件中的 OutputCache指令不支持此属性。 Accept-Language:

8、 代表请求页面中用户最希望的有优先级顺序的人类语言列表; User-Agent: 代表请求页面设备的类型; Cookie: 代表当前域名下创建的浏览器的cookie项。 說明: 第一個用戶提交頁面請求後,後面30秒內所有用戶訪問該頁面時只要IE語言沒有改變,那麼不使用緩存,否則就使用緩存IE語言設置:IE-工具-Internet選項-常規-語言 DEMO: VaryByHeader.aspx,OutputCache指令,VaryByCustom: 用于自定义输出缓存要求的任意文本。如果赋予该属性值是browser,缓存将随浏览器名称和主要版本信息的不同而异。如果输入了自定义字符串,则必须在 应

9、用程序的Global.asax文件中重写HttpApplication.GetVaryByCustomString方法。 說明: 第一個用戶提交頁面請求後,後面30秒內所有用戶訪問該頁面時只要HttpApplication.GetVaryByCustomString返回的字符串沒有改變,那麼不使用緩存,否則就使用緩存 DEMO: VaryByCustom.aspx,OutputCache指令,CacheProfile : 用于定义与该页关联的缓存设置的名称。是可选属性,默认值为空字符()。需要注意的是,包含在用户控件中的 OutputCache指令不支持此属性。在页面中指定此属性时,属性值必须

10、与Web.config文件outputCacheSettings配置 节下的outputCacheProfiles元素中的一个可用项的名称匹配。如果此名称与配置文件项不匹配,将引发异常。 DEMO: CacheProfile.aspx,OutputCache指令,SqlDependency: 指定缓存失效的数据库依赖项。可以具体到数据库和表 Web.config設置 為資料庫設置設置緩存 Visual Studio 命令工具中執行aspnet_regsql -S 2 -U sa -P 000000 -ed -d MyTest -et -t Employees將生產表A

11、spNet_SqlCacheTablesForChangeNotification與一序列存儲過程 頁面使用 DEMO: SqlDependency.aspx,Cache類,对于每个应用程序域均创建该类的一个实例,并且只要对应的应用程序域保持活动,该实例便保持有效。有关此类实例的信息通过 HttpContext 对象的 Cache 属性或 Page 对象的 Cache 属性来提供。 方法 Add:将指定项添加到Cache对象,该对象具有依赖项、过期和优先级策略以及一个委托(可用于在从Cache移除插入项时通知应用程序)。如果Cache中已保存了具有相同key参数的项,则对此方法的调用将失败。若

12、要使用相同的key参数改写现有的Cache项,请使用Insert方法. Insert:向Cache对象插入项。使用此方法的某一版本改写具有相同key参数的现有Cache项。 Remove:从应用程序的Cache对象移除指定项。 Item/Get:提供通过Name找到Value的方法,Cache類,將內容添加到Cache中 通过指定其键和值将项添加到缓存中 Cache鍵名稱 = 值; 通过使用 Insert 方法将项添加到缓存中 Cache.Insert(鍵名稱, 值); Cache.Add( KeyName,/缓存名 KeyValue,/要缓存的对象 Dependencies,/依赖项 Abs

13、oluteExpiration,/绝对过期时间 SlidingExpiration,/相对过期时间 Priority,/优先级 CacheItemRemovedCallback /缓存过期引发事件,CacheDependency类,如果向缓存添加一个依赖于另一个对象(如文件或文件数组)的项,则在该对象更改时会自动从缓存中移除该依赖项。 注意:可以使用Add或Insert來向應用程序緩存中添加依賴項,但不可以使用Item來添加,靜態類、Cache、Application,生命周期 連接,壓縮,壓縮分類 GZip Deflate 压缩协商 服务器怎么知道浏览器能够接收压缩内容? 浏览器怎么知道接收的内容是压缩过的? 当支持压缩的浏览器向服务器发送请求时,会包含一个Accept-Encoding请求头,告诉服务器它支持的压缩算法例如:Accept-Encoding: gzip,deflate如果服

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论