WEB开发网
开发学院WEB开发ASP.NET ASP.NET性能优化 阅读

ASP.NET性能优化

 2010-10-31 08:59:55 来源:WEB开发网   
核心提示:cmd.CommandText = "select Col1, Col2 from Table1" ;SqlDataReader dr = cmd.ExecuteReader();int col1 = dr.GetOrdinal("Col1");int col2 = dr.Get
cmd.CommandText = "select Col1, Col2 from Table1" ;
SqlDataReader dr = cmd.ExecuteReader();

int col1 = dr.GetOrdinal("Col1");
int col2 = dr.GetOrdinal("Col2");

while (dr.Read())
{
Console.WriteLine( dr[col1] + "_" + dr[col2]);
}


2.4.3 使用类型化方法访问属性
 从Row中访问某列属性,用GetString、GetInt32这种显式指明类型的方法,其效率较通用的GetValue方法有细微提高,因为不需要做类型转换。
 2.4.4 使用多数据集
 部分场景可以考虑一次返回多数据集来降低网络交互次数,提升效率。示例如下:
cmd.CommandText = "StoredProcedureName"; // The stored procedure returns multiple result sets.
SqlDataReader dr = cmd.ExecuteReader();

while (dr.read())
// read first result set

dr.NextResult();

while (dr.read())
//


2.5 DataSet
 2.5.1 利用索引加快查找行的效率
 如果需要反复查找行,建议增加索引。有两种方式:
 1. 设置DataTable的PrimaryKey
 适用于按PrimaryKey查找行的情况。注意此时应调用DataTable.Rows.Find方法,一般惯用的Select方法不能利用索引。
 2. 使用DataView
 适用于按Non-PrimaryKey查找行的情况。可为DataTable创建一个DataView,并通过SortOrder参数指示建立索引。此后使用Find或FindRows查找行。

3.1 减少往返行程(Reduce Round Trips)
 使用下面的方法可以减少Web服务器和Browser之间的往返行程:
 1. 为Browser启用缓存
 如果呈现的内容是静态的或变化周期较长,应启用Browser缓存,避免发出冗余的http请求。

2. 缓冲页面输出
 如果可能,则尽量缓冲页面输出,处理结束后再一次传送到客户端,这可以避免频繁传递 小块内容所造成的多次网络交互。由于这种方式在页面处理结束之前客户端无法看到页面内容,因此如果一个页面的尺寸较大的话,可考虑使用 Response.Flush方法。该方法强制输出迄今为止在缓冲区中的内容,你应当采用合理的算法控制调用Response.Flush方法的次数。

3. 使用Server.Transfer重定向请求
 使用Server.Transfer方法重定向请 求优于Response.Redirect方法。原因是Response.Redirect会向Broswer回送一个响应头,在响应头中指出重定向的 URL,之后Brower使用新的URL重新发出请求。而Server.Transfer方法直接是一个简单的服务端调用,完全没有这些开销!
 需要注意Server.Transfer有局限性:第一,它会跳过安全检查;第二,只适用于在同一Web应用内的页面间跳转。

3.2 避免阻塞和长时间的作业
 如果需要运行阻塞或长时间运行的操作,可以考虑使用异步调用的机制,以便Web服务器能够继续处理其它的请求。
 1. 使用异步方式调用Web服务和远程对象
 只要有可能就要避免在请求的处理过程中对Web服务和远程对象的同步调用,因为它占用的是的ASP.NET 线程池中的工作线程,这将直接影响Web服务器响应其它请求的能力。

2. 考虑给不需要返回值的Web方法或远程对象的方法添加OneWay属性
 这种模式能让Web Server调用之后就立即返回。可根据实际情况决定是否使用这种方法。

3. 使用工作队列
 将作业提交到服务器上的工作队列中。客户端通过发送请求来轮询作业的执行结果。

3.3 使用缓存
 缓存能在很大程度上决定ASP.NET应用的最终性能。Asp.net支持页面输出缓存和页面部分缓存,并提供Cache API,供应用程序缓存自己的数据。是否使用缓存可考虑下面的要点:

上一页  7 8 9 10 11 12 13 14 15 16  下一页

Tags:ASP.NET 性能优化

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接