您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

asp.net小谈网站性能优化

添加时间:2014-12-29 21:06:45  添加: 思海网络 
网站性能优化是多方面的,这里先谈一下这些天来的所获: 
1、书写代码的习惯; 
再复杂的逻辑,也是从最简单的开始。在书写代码的过程中,很多不好的规范都会影响网站的性能; 
以下是整理出来的些许代码习惯: 
1)字符串的比较 用 string.Empty 代替 " " 
2)在遍历过程中,先定义好计数变量, 再遍历, 这样会减少每次遍历就分配一次内存空间: 
复制代码 代码如下:

int i; 
for( i=0; i<100;i++) 

// codeing 


3)同样的,用 StringBuilder.Append() 代替 [csharp] string +="ABC" [/csharp]; 
4)在遍历循环中中处理逻辑而不要调用其他方法形式,那样在调用时会有性能损耗 
5)累加/减时,使用 A+=1,A-=1 ;而不用 A=A+1;这样减缓申请内存的次数 
6)多用集合操作 
a:如果如果集合中元素类型固定,则可以使用它们各自对应的集合类,如数组、泛型等,这样可以避免装箱、拆箱操作; 
b:如果集合中元素个数固定并且类型一致,则使用数组存储; 
c:如果对集合的操作主要是查找方面的,可以使用HashTable,Dictionaty<TYey,TValue> 
7) 使用Server.Transfer 来进行页面重定向 
好处:性能比response.redirect要好很多,而且具有隐藏URL的好处,可以避免客户端进行页面重定向; 
坏处:要是用户用刷新或是后退会导致发生意外的情况,所以请慎用 
8)减少服务器控件的运用 
9)合理(适当时候)使用缓存 
10)减少Cookies大小 
... ... 
2、数据库 
1)数据库最迟打开、最早关闭; 
2)优化数据库连接配置,对于大型网站由于数据库中存在大量的数据,所以可以加大其数据库连接池
Max Pool Size=512;(默认为100) 
3)优化SQL语句,并使用存储过程 
注意:尽量避免“select * from”之类的sql语句;尽量不要再查询语句中使用子查询;尽量使用索引;
4)使用DataReader 
在 DataReader 中,我们经常会用dr["字段名"]的查找形式,但是这种写法却是最耗性能的; 
一般,使用基于「序列号」的查找,比基于「命名」的查找更有效率。其中,可分为4类: 
写法 (1) 使用 DataReader 索引 + 基于「序列号」的查找,如:dr[1].ToString(), 
写法 (2) 使用 DataReader 索引 + 基于「命名」的查找,如:dr["LastName"].ToString(),这是性能最不好的写法 
写法 (3) 使用 Get 开头的方法 + 基于「序列号」的查找,如:dr.GetString(1),写法 
写法 (4) 使用 GetSql 开头的方法 + 基于「序列号」的查找,如:dr.GetSqlString(1), 
写法 (5)使用 基于「序列号」+ GetOrdinal() 方法的查找。 
GetOrdinal()函数方法是什么呢? 
我们从数据库中书写对应的字段到我们查找的序列号上,但是有时候插入新的字段时,会有所变化。而GetOrdinal()的作用就是让我们自己来序列化相对应的字段。 
a、首先定义序列号 int classid,classnameid; 
b、然后通过GetOrdinal()方法赋予新的序列号; 
c、通过GetSqlSring( 序列号 ) 方法就可找到对应的字段。 
示例代码如下: 
复制代码 代码如下:

SqlConnection con = new SqlConnection(connString); 
string strcmd = "select top 1 classid,classname where cms_class"; 
SqlCommand cmd = new SqlCommand(strcmd, con); 
con.Open(); 
SqlDataReader dr = cmd.ExecuteReader(); 
int numberId, numberName; 
numberId = Convert.ToInt32(dr.GetOrdinal("classid")); 
numberName = Convert.ToInt32(dr.GetOrdinal("classname")); 
con.Close(); 
if (dr.Read()) 

string result = dr.GetSqlString(numberId) + " " + dr.GetSqlString(numberName); 

dr.Close(); 
关键字:网站、性能、优化
分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站