第11章 提高SP.NET应用程序的性能.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章 提高SP.NET应用程序的性能

第11章 提高ASP.NET应用程序的性能 11.1 缓存技术 页面输出缓存 页面数据缓存 页面部分缓存 System.Web.Caching命名空间 11.1.1 页面输出缓存 页面输出缓存是把一次请求所产生的动态输出保存于内存中。在一个负担很重的站点,即使将一个经常被访问的页面缓存很短的时间,都可以带来性能上很大的提高。当使用输出缓存时,后继的对页面的请求将直接从内存中取出页面而不重新创建页面。 11.1.2 页面数据缓存 页面数据缓存是传统的应用程序缓存技术,可以使用它以编程方式将任意对象(例如数据集)存储到服务器内存,这样应用程序可以节省重新创建这些对象所需的时间和资源。ASP.NET提供了一个相当出色的缓存引擎机制,它允许页面保存和索引HTTP请求所要求的各种各样的对象。ASP.NET的缓存对各个应用来说是私有的,是存储各种对象的存储器。页面数据缓存是由Cache类实现的,Cache对象是每个应用程序专用的,其生存期依赖于该应用程序的生存期。当重新启动应用程序时,将重新创建其Cache对象的实例。ASP.NET允许根据外部文件、目录或另一个缓存项定义缓存项的有效性。这些叫做文件依赖项和键依赖项。如果依赖项更改,则缓存项失效并被从Cache中移除。 11.1.3 页面部分缓存 有时候实际情况不允许缓存整个页面,部分的页面必须根据每次请求来创建。在这种情况下,可以使用部分缓存技术来缓存那些可以缓存的部分。页面部分缓存技术对用户控件实行缓存,同时需要使用@ OutputCache指令,定义客户控件的缓存策略。 11.1.4 System.Web.Caching命名空间 System.Web.Caching命名空间提供用于缓存服务器上常用数据的类,其中包括Cache 和CacheDependency类。 11.2提高数据库相关应用程序的性能 优化数据库设计 优化查询 优化代码设计 11.2.1 优化数据库设计 逻辑设计:数据库的逻辑设计主要指表、关系以及约束等数据库对象的定义和设计。一般来说,良好的数据库逻辑设计至少应该满足数据库设计理论的前三个范式,即第一范式(没有重复的组或多值的列),第二范式(每个非键字段须依赖于主键,不能依赖于组合主键的某个组成部分)和第三范式(一个非键字段不能依赖于另一个非键字段)。 物理设计:优化数据库的物理设计是指尽可能快地对数据进行物理访问和维护,这涉及到磁盘系统、对象、索引等。例如使用磁盘阵列可以有效的提高数据访问速度,或者可以把一个被频繁访问的很大的数据表分割成几个较小的表,放在多个单独的智能型磁盘控制器的数据库设备上,这样也可以提高性能。因为有多个磁头在查找,所以数据分离也能提高性能。 11.2.2 优化查询 使用数据库的存储过程,不仅可以避免多次对命令的编译,而且可以独立于程序,便于修改。使用存储过程还可以减少网络中的数据传输,进一步的提高性能。 使用带有参数的SQL命令 当查询多个数据表时,要遵守一个原则:先过滤后连接。 11.2.3 优化代码设计 ADO.NET为数据库应用程序的性能提供了很好的支持,例如采用池连接可以显著提高应用程序的性能。应用程序中经常有多个用户执行相同类型的数据库访问,例如显示某个表中的全部数据。如果为每个用户打开单独的连接,那么会造成必要要的资源浪费。此时,可以通过共享到数据源的连接来提高应用程序的性能,也就是使用池连接。当到数据源的连接打开时,.NET Framework数据提供程序会创建和连接匹配的一个连接池。连接池是为每个惟一的连接字符串创建的。如果相同的连接被打开,那么该连接使用同一个连接池。 11.3 性能测试 性能瓶颈 性能测试工具 11.3.1 性能瓶颈 CPU处理能力瓶颈:可以使用系统监测程序确定CPU的使用率,如果CPU以75%或更高的速率长时间运行,那么就可以肯定可能碰到了CPU性能的瓶颈问题了。此时,只有更换较快的CPU才能够有效的解决这个瓶颈。 内存瓶颈:内存瓶颈也是较为常见的瓶颈,数据库管理系统会占用大量的系统内存以提高执行的性能,如果内存不足,势必会造成应用程序性能下降。 磁盘读写瓶颈:当内存不足时,数据库管理程序可能会使用磁盘作为缓存,这样造成大量的物理I/O操作。另外,数据库用来缓存数据越多,读写I/O的操作就越频繁。由物理I/O操作发生的瓶颈问题是数据库系统可能遇到的最常见的同硬件有关的性能问题。在通常情况下,增加磁盘驱动器并组成磁盘阵列能够有效解决这个性能问题。 11.3.2 性能测试工具 Microsoft提供了名为Web Application Stress (WAS)工具来测试网络程序的性能。它能同时产生多个HTTP客户端请求开发的网站。测试者可以在图形界面中控制客户端的连接数,cook

文档评论(0)

5201314118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065201001000004

1亿VIP精品文档

相关文档