asp.Net性能优化(2)
来源:未知 责任编辑:责任编辑 发表时间:2015-09-16 20:04 点击:次
(四).避免使用DataGrid
大家都知道DataGrid功能强大。但是功能强大的同时,增加了性能上的开销。一般用 其它控件: DataList 或Repeater控件能实现的,尽量不用DataGrid.
(五).字符串操作
1.避免装箱操作. 装箱操作运行效率比较低. 例如运行两个代码段:
string test="";
for(for int i=0;i<10000;i++)
{
test = test + i;
} 和
string test="";
for(for int i=0;i<10000;i++)
{ test = test + i.ToString();
}
下面的代码段显然效率要高.因为i是整型的,系统要先把i进行装箱转换为string 型的,再进行连接. 需要时间,可以Copy到自己机器上测试一下.
2.使用StringBulider类。在进行字符串连接时: string str = str1 + str2 + ....; 一般超过三项连接,最好用StringBuilder来代替string类. StringBuilder可以避免重新创建string 对象造成 的性能损失. 一般用于组装sql语句时用到: StringBulider. 可以到自己机器上测试一下.
3.尽量少用: try {} catch{}finally{} 语句.此语句执行效率比较低.
(六).ADO.Net使用方面优化
1.数据库连接打开和关闭。在需要连接时打开,当访问完数据库要立刻关闭连接. 举例说明,还是看两个代码段:
I. DataSet ds = new DataSet();
SqlConnection MyConnection = new SqlConnection("server=localhost; uid=sa; pwd=; database=NorthWind");
SqlCommand myCommand = new SqlCommand(strSql,MyConnection);
SqlDataAdapter myAdapter=new SqlDataAdapter(queryStr,connectionStr);
MyConnection.Open(); //打开连接
for(int i=0;i<1000;i++) //for循环模拟取得数据前的商业逻辑操作
{
Thread.Sleep(1000);
}
myAdapter.Fill(ds);
for(int i=0;i<1000;i++) //for循环模拟取得数据后的商业逻辑操作
{
Thread.Sleep(1000);
}
MyConnection.Close(); //关闭连接
II. DataSet ds = new DataSet();
SqlConnection MyConnection = new SqlConnection("server=localhost; uid=sa; pwd=; database=NorthWind");
SqlCommand myCommand = new SqlCommand(strSql,MyConnection);
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>