提高.NET网站性能

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应用内的页面间跳转。

  2.避免阻塞和长时间的作业

  如果需要运行阻塞或长时间运行的操作,可以考虑使用异步调用的机制,以便Web服务器能够继续处理其它的请求。

  (1)使用异步方式调用Web服务和远程对象

  只要有可能就要避免在请求的处理过程中对Web服务和远程对象的同步调用,因为它占用的是的ASP.NET 线程池中的工作线程,这将直接影响Web服务器响应其它请求的能力。

  (2)考虑给不需要返回值的Web方法或远程对象的方法添加OneWay属性

  这种模式能让Web Server调用之后就立即返回。可根据实际情况决定是否使用这种方法。

  (3)使用工作队列

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

  3.使用缓存

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

  (1)识别创建与访问代价较大的数据

  (2)评估需要缓存数据的易变性

  (3)评估数据的使用频次

  (4) 将要缓存数据中易变数据和不变数据分离,只缓存不变数据

  (5)选择合适的缓存机制(除Asp.net Cache外,Application state和Session state也可以作为缓存使用http://www.126fm.net/)

posted @ 2010-06-28 09:42  cjg123456we  阅读(322)  评论(0编辑  收藏  举报