转载:ASP.Net性能优化(作者:刘鉴平)

转载: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

转载:ASP.Net性能优化(作者:刘鉴平)的相关文章

Asp.Net性能优化.

asp.net|性能|优化 (一).选择会话状态存储方式    在Webconfig文件配置:    <sessionState mode="???" stateConnectionString="tcpip=127.0.0.1:42424"          sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"       cookieless="f

Asp.net性能优化总结(二)

asp.net|性能|优化 Asp.net性能优化总结 一.使用存储过程: 性能方面:存储过程提供了许多标准sql语言中所没有的高级特性.其传递参数和执行逻辑表达式的功能,有助于应用程序设计者处理复杂任务.另外,存储过程存储在本地服务器上,减少了执行该过程所需的网络传输宽带和执行时间.(存储过程已经对sql语句进行了预编译,所以其执行速度比在程序里执行sql语句快很多) 程序结构方面:从程序的可扩展性看,使用存储过程会对程序以后的修改带来方便.比如数据库的结构改变了,只需修改相对应的存储结构,和

Asp.net性能优化总结(一)

asp.net|性能|优化 最近对项目收尾.整理了项目文档,看到以前对性能优化所做的标记.出于和大家共同讨论的目的,发表自己的看法.欢迎大家对此讨论,如有错误请大家指正.(此文不涉及如cahe等深层机制应用和研究,只是些肤浅应用和建议) 关于数据处理相关的优化 一. SqlDataRead和Dataset的选择 Sqldataread优点:读取数据非常快.如果对返回的数据不需做大量处理的情况下,建议使用SqlDataReader,其性能要比datset好很多.缺点:直到数据读完才可close掉于

Asp.Net性能优化技巧汇总_实用技巧

本文搜集汇总了Asp.net性能优化的各种技巧,对于Asp.Net开发人员有很好的参考借鉴价值.具体内容如下: 一.选择会话状态存储方式 在Webconfig文件配置: <sessionState mode="???" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"

asp.net性能优化之程序与数据库优化方法

一, SqlDataRead和Dataset的选择 Sqldataread优点:读取数据非常快.如果对返回的数据不需做大量处理的情况下,建议使用SqlDataReader,其性能要比datset好很多.缺点:直到数据读完才可close掉于数据库教程的连接 (SqlDataReader 读数据是快速向前的.SqlDataReader 类提供了一种读取从 SQL Server 数据库检索的只进数据流的方法.它使用 SQL Server 的本机网络数据传输格式从数据库连接直接读取数据.DataRead

ASP.NET性能优化小结(ASP.NET&amp;amp;C#)

ASP.NET: 一.返回多个数据集 检查你的访问数据库的代码,看是否存在着要返回多次的请求.每次往返降低了你的应用程序的每秒能够响应请求的次数.通过在单个数据库请求中返回多个结果集,可以减少与数据库通信的时间,使你的系统具有扩展性,也可以减少数据库服务器响应请求的工作量. 如果用动态的SQL语句来返回多个数据集,那用存储过程来替代动态的SQL语句会更好些.是否把业务逻辑写到存储过程中,这个有点争议.但是我认为,把业务逻辑写到存储过程里面可以限制返回结果集的大小,减小网络数据的流量,在逻辑层也不

两个ASP的性能优化实用方法

性能|优化 1.讨论主题:ASP脚本大小 你的脚本页(还有其它页面)是不是比必须的长度要长?这是一开始执行就会降低Asp性能的东西.ASP脚本在用来获取信息和格式化输出的时候是十分有用的,但脚本也是逐行解释执行,所以你的脚本越长,执行它的时间也就越长. 如果你的脚本很庞大,怎么做才能减少脚本的长度呢?这里有几点建议:你可以将它们转换成服务器端组件,也就是说,做成VB动态链接库DLL或者通过先进的Windows编程语言或适当的COM接口语言将它转换成未编译组件?并且在服务器端注册它们.有关的快速指

漫谈ASP.NET性能优化问题

asp.net|问题|性能|优化     一.SqlDataRead和Dataset的选择 Sqldataread优点:读取数据非常快.如果对返回的数据不需做大量处理的情况下,建议使用SqlDataReader,其性能要比datset好很多.缺点:直到数据读完才可close掉于数据库的连接 (SqlDataReader 读数据是快速向前的.SqlDataReader 类提供了一种读取从 SQL Server 数据库检索的只进数据流的方法.它使用 SQL Server 的本机网络数据传输格式从数据

ASP.NET性能优化小结(ASP.NET&amp;amp;C#)_实用技巧

ASP.NET: 一.返回多个数据集 检查你的访问数据库的代码,看是否存在着要返回多次的请求.每次往返降低了你的应用程序的每秒能够响应请求的次数.通过在单个数据库请求中返回多个结果集,可以减少与数据库通信的时间,使你的系统具有扩展性,也可以减少数据库服务器响应请求的工作量. 如果用动态的SQL语句来返回多个数据集,那用存储过程来替代动态的SQL语句会更好些.是否把业务逻辑写到存储过程中,这个有点争议.但是我认为,把业务逻辑写到存储过程里面可以限制返回结果集的大小,减小网络数据的流量,在逻辑层也不