ASP.NET学习之二 性能考虑
来源:互联网 发布:burberry围巾 知乎 编辑:程序博客网 时间:2024/04/30 18:50
性能要求,考虑以下几个方面:
o 如何释放不需要的资源。
o 如何保证链接到数据库的方式最佳。
o 如何使用存储过程提高数据访问性能。
o 如何使用泛型提高集合性能。
o 如何最小化会话状态保证ASP.NET的处理最少。
o 如何调整视图状态减少向web服务器发送和接收的数据量。
1. 对象释放,比如系统文件、图像或数据库,通常在不需要时立即释放。
1) 使用try/catch释放。
Try
{
//create resource
}
Catch()
{
//Handle exception
}
Finally
{
//dispose of resource
}
2) 使用Using释放
Using(resource)
{
//code that uses the resource
}
2. 数据库链接,原则:打开连接尽量晚,获取数据,然后尽量关闭连接,释放连接。
Using(sqlconnection conn = new SqlConnection(“….”))
{
//code that use the connection
}
3. 储存过程。建立储存计划,更好的使用。
Eg: <asp:Sqldatasource id= “SqlDataSource1” runat=”server”
ConnectionString=”<%$ConnectionStrings:WroxUnited%>”
selectCommand=”select *from product”</asp:SqlDataSource>
转变为使用存储过程,代码如下:
<asp:Sqldatasource id= “SqlDataSource1” runat=”server”
ConnectionString=”<%$ConnectionStrings:WroxUnited%>”
selectCommand=”usp_Products”
SelectCommandType=”StoredProcedure</asp:SqlDataSource>
4. 强类型集合,泛型可以提高代码的可读性,减少错误,改进性能。采用泛型避免了数据的装箱和拆箱。
Using System.Collections.Generic;
List<string>myList = new List<string>;
myList.Add(“abc”);
myList.Add(“def”);
string s = myList[0];
5. 会话回占用处理器和内存资源,如果用户不使用会话状态,可以禁用会话。
<sessionSate mode =”Off”/>
如果需要会话状态,但所有页面不更新它。
<pages enableSessionState=”readOnly”/>
<%@ page enableSessionState=”readOnly”%>
6. 视图状态。可以在页面上禁用可以减少数据量。
<%@page EnableViewState=”false”%>
在页面和代码方面提高性能
o 数据绑定和回发。
o 对象的引用。
o String builder和字符串连接。
o 选择合适的集合。
arrayList在添加项时动态改变大小,适合储存经常要更改的数据。(插入,删除)
HashTable是数据对的集合,适合于不经常更改的数据。
ListDictionary适合存储少量数据,通常小于10项。
NameValueCollection是键和值的有效集合,最适合已排序的数据。
Queue提供先进先出的数据。
SortedList按序储存键和值,这会减慢数据添加。
Stack提供先进后出
StringCollection强类型的ArrayList用于按任意顺序储存字符串和常常更改的字符串。
StringDictionary强类型的HashTable,用于存储字符串且不经常更新。
- ASP.NET学习之二 性能考虑
- ASP.NET 2.0页面性能的考虑
- 构建高性能ASP.NET站点 网站优化需要考虑的方面二
- ASP.NET 学习笔记之二 建立 ASP.NET 应用程序
- asp.net开发数据库应用的性能方面的考虑
- ASP.NET网站性能优化 需要考虑哪些方面
- .net性能考虑
- ASP。NET学习二
- ASP.NET夜话之二十一asp.net网站的性能优化
- ASP.NET夜话之二十一asp.net网站的性能优化
- [ASP.NET学习笔记之二十七]实战.NET Remoting
- ASP.NET之性能优化
- 黑马程序员之ASP.NET学习笔记: 几个常用方法有效优化ASP.NET的性能
- [我的ASP.net学习历程]数据库操作之(二)
- [我的ASP.net学习历程]DataAdapter操作之(二)
- ASP.NET AJAX 学习之二 ScriptManagerProxy控件
- Asp.Net学习之数据验证控件(二)
- Asp.net性能优化总结(二)
- Oracle失败──语句失败
- ASTERISK拨号规则
- j2ee集合些的一些总结,带实例
- 流类库和输入输出
- 面向对象的三个基本特征
- ASP.NET学习之二 性能考虑
- 关于sqlserver 中 not in 问题
- 一个搞设计的朋友的个人网站:http://www.zhangbinqihua.cn/
- jdk5的多线程实现例子
- 在Cygwin下建立SSH服务(流水账)
- 爷爷
- USB鼠标, USB键盘制作
- (2)关于B/S和C/S架构的探析
- Oracle数据库的启动和停止