当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 实现性能目标的几种方法

ASP.NET
FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用方法
.NET 常用功能和代码小结
在 .NET Framework 2.0 中未处理的异常导致基于 ASP.NET 的应用程序意外退出
asp.net IList查询数据后格式化数据再绑定控件
asp.net sql存储过程
asp.net 简单实现禁用或启用页面中的某一类型的控件
asp.net(c#)获取内容第一张图片地址的函数
The remote procedure call failed and did not execute的解决办法
ASP.NET 在线文件管理
asp.net 读取并修改config文件实现代码
ASP.NET Cookie 操作实现
asp.net Silverlight中的模式窗体
Silverlight中动态获取Web Service地址
asp.net Silverlight应用程序中获取载体aspx页面参数
asp.net 水晶报表隔行换色实现方法
asp.net 获取Gridview隐藏列的值
手动把asp.net的类生成dll文件的方法
asp.net 使用ObjectDataSource控件在ASP.NET中实现Ajax真分页
动态指定任意类型的ObjectDataSource对象的查询参数
asp.net Md5的用法小结

ASP.NET 中的 实现性能目标的几种方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 40 ::
收藏到网摘: n/a


第一次在这里写BLOG,希望不要被大家取笑!
一. 调整程序代码
1.避免多次读取相同数据
在循环语句中不要包含无端重复执行的代码,如:
while ( dr.read())
{
if(dr.item["lastname"]==Request.params[“lastname“])
return true;
else
return false;
}
在上面循环中,对于DataReader返回的每条记录都要对Request.params[“lastname“]进行一次求值,假如dr返回100条记录,我们就对Request.params[“lastname“]求值了100次 ,而这100次有99次都是多余的,下面的代码相对效率就高些
string strlastname=Request.params[“lastname“];
while ( dr.read())
{
if(dr.item["lastname"]==strlastname)
return true;
else
return false;
}
总结:从任何类型的集合中读取值都比较慢,我们需要多次访问它时,可以先在局部变量中保存一个副本
2.对连接字符串使用Response.Write();
连接字符串是一个很费资源的操作,我们要把一个10字节的字符与一个30字节的字符连接起来,代码必须分配一个40字节的内存区域,复制所有字节到这块区域,然后在调整指针位置指到这块区域,在释放原来资源而Response.Write()方法提供了高效的缓冲和连接服务,所以一般情况下以下代码
Response.Write(“HeadLine=“);
Response.Write(“strHeadLine“);
Response.Write(“,Descreption=“);

Response.Write(dr.item[“Descreption“]);
比下列代码
Response.Write(“HeadLine=“)&_
StrHeadLine&_
“,Descreption=“&_
dr.item[“Descreption“];
效率要高
总结:尽量用Response.Write()和StringBuilder来连接字符串
3.避免频繁调用COM组件转为托管代码.
4.避免改变数组维数
在程序中动态改变数组维数其实是用请求大小创建一个新的数组,拷贝原来数组中内容到里面,然后删除原来数组,并用新数组代替旧数组地址,这就耗费了很大力气
5.不要过分依赖于代码中的异常检查
异常处理是很消耗资源的操作,对于普通代码能检测到情况,就应尽少使用异常处理
如try
{
int a,b;
a=100/b;
}
catch
{
b=0;
}
就不如用以下代码效率高
if(b==0)
{
error();
}
效率高
总结:应尽少量的使用异常处理机制
6。应该实现尽早绑定防止后期绑定,做法为在WEB页的@Page指令中加入O ption=“Strict”这一选项可以防止在数据转换时都是数据
二。调整ASP.NET的使用
1.禁用调试和跟踪模式
在部署产品级应用程序时,用这两个模式会显著降低性能
2.预先在Application 对象中载入数据
把一些频繁使用的又相对静止的数据通过一次性读取数据载入Application 中可以提高程序的性能 Application对象一旦建立九一直保存在内存中,直至程序结束,对于WEBl来说就是服务器关闭,但把
几Mbyte的数据存在Application中不是什么好的选择了
3.用Page.IsPostBack来避免不必要的处理
在实际表单提交时没有必要运行初始化代码,ViewState机制会保存我们任何表单的初始化元素
4. 适当使用服务器控件
在控件标记中加runat=server会增加web服务器的负担.除非有必要处理控件的属性,在服务器处理控件的事件时候就不要为标记加此属性
5.在必要的时候使用ViewState
viewstate包含的控件越多,服务器负担就愈大,利用viewstate还可能惹出麻烦,例如一个显示错误信息的label控件,我们希望不要在每一个页面上都重复该消息要清除某一控件的VIewstate 属性可以将其EnableViewSate属性设置为false.
6.在没有使用会话的页面中禁止用Session
7.尽可能的缓存数据和页面输出
Cache可以大幅度提高性能,我们可以在页面中编写OutputCache指令
8.避免对服务器进行不必的数据往返传输可以利用验证控件来减少不必要的往返数据传输后面的比较仓促,老婆催着睡觉,再不睡估计要.....,呵呵.