ASP.NET学习之二 性能考虑

2019-04-15 13:15发布

性能要求,考虑以下几个方面: 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: Sqldatasource id= “SqlDataSource1” runat=”server”             ConnectionString=”<%$ConnectionStrings:WroxUnited%>”             selectCommand=”select *from product” 转变为使用存储过程,代码如下: Sqldatasource id= “SqlDataSource1” runat=”server”             ConnectionString=”<%$ConnectionStrings:WroxUnited%>”             selectCommand=”usp_Products”                         SelectCommandType=”StoredProcedure 4.       强类型集合,泛型可以提高代码的可读性,减少错误,改进性能。采用泛型避免了数据的装箱和拆箱。 Using System.Collections.Generic; ListmyList = new List; myList.Add(“abc”); myList.Add(“def”); string s = myList[0]; 5.       会话回占用处理器和内存资源,如果用户不使用会话状态,可以禁用会话。 如果需要会话状态,但所有页面不更新它。   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,用于存储字符串且不经常更新。