分享
 
 
 

实现性能目标的几种方法

王朝c#·作者佚名  2006-12-17
窄屏简体版  字體: |||超大  

第一次在这里写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.避免对服务器进行不必的数据往返传输

可以利用验证控件来减少不必要的往返数据传输

后面的比较仓促,老婆催着睡觉,再不睡估计要.....,呵呵.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有