转载:ASP.Net性能优化(作者:刘鉴平)
ASP.Net <八段锦>
ASP.Net性能优化的
八个设计要点
1. 使用Page.IsPostBack
这一项大多数人都做到了.
If (!Page.IsPostBack)
{
dbAcess oWS=new dbAccess();
DataSet ds=oWS.GetNewsInfoDS();
}
2. 使用存储进程
优点:
o Stored Procedure 是在编译后运行
o 系统体系结构自然分层
o 安全性
微软在Best Practice中特别推崇,广泛被应用于大多数ASP.Net开发项目中.
3a. 使用HttpServerUtility.Transfer方法
服务器的Request方法已被广泛应用
但它不必要地进行了服务器到前后台的往返信息交換
应使用HttpServerUtility.Transfer方法,在同一系统内调用时,简洁,明快
例如, 过去您用Response.Redirect(“vip.aspx”);现在您不妨考虑使用Server.Transfer(“vip.aspx”);前者包含了服务器到前后台的往返信息交換, 后者则是直接跳过去了. 它们的微妙区别是:
Response.Redirect 将客户端重定向到新的 URL。指定新的 URL 并指定当前页的执行是否应终止。
Server.Transfer对于当前请求,终止当前页的执行,并使用指向一个新页的指定 URL 路径来开始执行此新页。
3b.限制验证控件的使用
验证控件Validate Control的确方便,但为性
能考虑,也尽量少用.有时可以在客户端用简
单的方法搞定.
总之是尽可能避免进行服务器到前后台的往
返信息交換.
4a. 只存储必要的View State
服务器控件将View State 存储设定为默认,
这有时是不必要的.
简单服务器控件还好, 如Label, Text Box
等,但一个DataGrid需要60K以上的数据传输.
4b. 不要依靠.Net的Exception
.Net的Exception Handling是一种昂贵的错误
处理机制,应尽可能用自制的错误处理机制,不要依靠.Net的Exception.
在.Net 进行Exception Handling 的时候, 服务器的资源被大量占用, 是一种非常不经济的办法.
5. 限制Session State的使用
ASP时代后, ASP.Net 的Session State引入
是一项巨大的进步,可是您应尽可能少用它.
甚至使Session State变成只读状态也是好的.例如,在用户登录后,以后其它页加入如下码:
<% Page EnableSessionState=“ReadOnly”%>
6.限制使用服务器控件
顾名思义,服务器控件是在服务器端运行的.它可以
o 动态掌控控件Property等
o 菅理View State
o 掌控服务器发生事件
然而,在可以使用HTML控件时尽量使用
HTML控件.
7. 对系统预编译
编制一个简单的程序,自动走遍ASP.Net系统
的每一页.
最不济也应手工访向系统的几个主页.
注: 据称新版.Net (Whidbey)解决了这一问题.
8. 关于 ASP.Net Caching
暂存Caching是一种性能优化的重要手段.但
使用时小心.设太多或太少Caching, 暂存的
定时等都对性能有莫大影响.
怎样找到一种平衡 ?
没有一定之规, 现在仍是一项研究课题.
总结
我们注意到, ASP.Net性能优化的八个设计要点实际上是一种还濮归真的过程应用.因为,最后落实在系统表现层的仍然是最最基本的HTML码.它应该是愈简单愈好.这也是用户可以体会到的唯一东西.
.Net的每一个特性或优点都有其相应的代价. 设计者掉以轻心的结果会使.Net这一先进技术转变成落后的,乃至低能的技术手段.
时间: 2024-10-27 12:46:18