[翻译]ASPNET 20网站应用程序的性能优化.doc_第1页
[翻译]ASPNET 20网站应用程序的性能优化.doc_第2页
[翻译]ASPNET 20网站应用程序的性能优化.doc_第3页
[翻译]ASPNET 20网站应用程序的性能优化.doc_第4页
[翻译]ASPNET 20网站应用程序的性能优化.doc_第5页
全文预览已结束

下载本文档

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

文档简介

摘要:开发一个对用户的请求做出很快回应的应用程序是每个开发者的目标和挑战!ASP.NET是为速度优化和性能改进而设计的,它的改进体现在在服务端的页编译和自动存储。然而,当你的应用程序在同一时间内执行大量的请求时,这项改进仍然无法防止性能的降低。为了写一个高性能的应用程序,你必需平衡通常影响性能的四个方面. 表现如下:执行时间:执行一个请求所花的时间,从接收到第一个字节算起到接收到最后一个字节所花的时间。响应时间:从发送请求到服务器响应接收到第一个字节所花的时间。伸缩性:这个主要表现在服务器分配给应用程序的资源(内存,CPU或电脑)。吞吐量:在一个单位时间内(通常是1秒)能够处理请求的数量。以下是能够让你开发出一个高性能应用程序的几个方面:状态管理,数据存储,页面和服务器控件,网页应用程序,代码实践。我们先从前面两个方面来展开说明,在下一篇文章中将涵概后面三个方面的内容,以及缓存技术将在缓存优化的文章里详细讲解。状态管理:以下列出的一些建议指出怎样更有效的执行状态管理:SessionState 语句:当你不用Session时请关闭Session状态,并不是所有的网站都会保存每个用户Session状态。当你禁用不必要的Session状态时你的网站性能将会有所提高。在网页中禁Session状态请用下面的代码:12如果你的页面只要求读取Session的值,你可以将其设为只读。如果要禁用整个网站的Session会话可以打开Web.config文件,将SessionState节点的mode属性设置为false,代码如下:1Session State Provider不只一个存储Session状态数据的方式,你可以从Web.config文件中的SessionState节点的Mode属性中设置你所喜欢的方式来存储其数据。它所支持的存储方式包括:in-process模式,state server模式,Sql server模式以及自定义模式。每一种模式在选定的环境下都有其自身的优势。in-process模式是至今最快的一种模式,如果你想用Session来存储一些小而且经常变动的数据,这种模式是你理想的选择。如果你想在重起你的服务器后仍然维持你的Session状态,state server模式和SQL Server模式是不错的选择。数据存储: 以下几点指出怎么更有效的进行数据存储: 应用SQL server provider Sql server provider能够开发更高效的网站应用程序以及更好的扩展性。 应用SQL DATA READER SqlDataReader类在整个运行过程中只检索中一次数据,因此在条件允许的情况下应用SqlDataReader类来替代DataSet,DataTable等,这样能给你的应用程序带来更高的性能。 应用存储过程 尽可能的用存储过程来代替命令语句,因为存储过程是经过编译以后执行的,这样就能够提高数据库处理速度。 应用SqlDataSource的相关属性 替换包括Where或Sort by的SQL条件语句,充分利用SqlDataSource的相关属性(如:caching, filtering, 和sorting)你可以将SqlDataSource对象的EnableCaching属性设置为true以激活将所检索的数据缓存于这个DataSource中。当你激活缓存时,SqlDataSource对象将对所检索的缓存数据中执行如filtering和Sorting。可以应用SqlDataSource对象的FilterExpression和SortParameterName两个属性来对数据进行过滤和排序操作。这样肯定能够提高你网站的性能。 ViewState加密 为了提高安全性,必须将重要的保存在ViewState的数据进行加密解密,但这样会对你的应用程序的速度带来一定的影响。加密包括一个以装载的对象初始化加上一个未加载的数据的大小,如果数据越大所耗的时间也越长,因此应对ViewState数据视其重要性而进行适当的加密。 分页 众所周知,如果你要显示一个给定数据源的数据,你必须用一些像:GridView或DetailsView等服务器控件,并将其数据源进行邦定。你可能将会通过GridView或DetailsView来对数据源的记录或列进行筛选,将其paging属性设为true。这种分页技术叫做UI分页(User Interface paging)。为了实现这项功能,GridView控件会请求获取特殊的数据源,从中获取当前页面所需要的所有记录而忽视其他的数据。在每一页中都需要执行这样的操作,这样当然造成资源很大的浪费。 还有一个技术能实现这种功能,这中技术就是数据源分页技术。这种技术将借助于data source控件来实现,DataSourceView就是处理类,当GridView或DetailsView应用到此数据源时将其CanPage属性设为true。这样数据源将只取当前页的数据,可以看出数据源分页比UI分页更有效。唯一可以让数据源分页的为ObjectDataSource类。 缓存 应用缓存能够其他任何技术更能提高你网站的性能。.NET 框架提供了几种缓存页面的通道以及在ASP.NET应用程序中缓存数据的方法。你可以将很重要而又在各个请求中不变的数据或页面进行缓存。 为了能够使缓存更有效,请看以下几点: -不要缓存短时间过期的缓存项,每一个缓存项过期都涉及到缓存的清理和垃圾的回收。 -不要缓存太大的缓存项,这样对每一项将消耗更多的内存。一些很容易计算等的数据就没有必要进行缓存。 缓存如此重要,Asp.NET框架给我们提供了多种的通道来逐渐改进

温馨提示

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

评论

0/150

提交评论