正在阅读:提高ASP.Net应用程序性能的十大方法(1)提高ASP.Net应用程序性能的十大方法(1)

2005-02-04 10:54 出处: 作者:chyich 译 责任编辑:huangpeidan

  作者: Rob Howard
  出自: http://msdn.microsoft.com/msdnmag/issues/05/01/ASPNETPerformance/default.aspx
  翻译:chyich
  翻译时间:2005-1-5

  本文讨论:

  提高asp.net应用程序性能的常说的神话
  有用的提高asp.net应用程序性能的技巧
  Asp.net应用程序操作数据库的建议
  Asp.net中的缓存与后台处理进程

  现在写一个asp.net的web应用程序变得非常的简单,许多的程序员都不愿花时间去构建一个性能良好的应用程序。本文将要讨论提高web应用程序性能的十大方法。我将不限于只讨论asp.net应用程序的内容,因为它们只是web应用程序的一个子集。本文也不能提供一个完整提高web应用程序性能的指南,因为这需要一本书的篇幅。本文只提供一个提高web应用程序性能的良好的开端。(剩下的只有我们自己慢慢研究了)。

  在工作这外,我经常去攀岩,在每次攀岩之前,我都会重温一下攀岩线路图及看一下前面的成功的攀岩者的建议。因为我们需要它们的成功经验。同样的,当你需要修改某个有性能问题的程序或者是要开发一个高性能的站点时,你也需要学习怎么样写一个高性能的web应用程序。
 
  我个人的经验主要来源于在微软的asp.net组担任程序经理,运行和管理www.asp.net网站,和协助开发Community Server(它是asp.net Forums,.Text, and nGallery的集成升级版本软件)。我想这些经验能我让来帮助大家。

  你也许会想到把你的应用程序划分成不同的逻辑层。你也可能听过三层物理架构或N层架构,这是最常用的架构模式,它把不同的程序功能物理的分配给各个硬件来执行。这样,如果我们想提高应用程序的性能的话,加一些硬件就可以达到目的了。按理说这种方法能提高应用程序的性能,但是我们应该避免使用这种方法。所以,只要有可能,我们都应该把asp.net页面和它用到的组件放到一个应用程序中运行。
 
  因为分布式的布署,要用到web services或者Remoting,它将使应用程序的性能下降20%或者更多。
 
  对于数据层有点不同,最好还是把它独立出来布署,用一个单独的硬件来运行它。虽然这样,但是数据库仍然是应用程序性能的瓶颈。因此,当你想优化你的程序的时候,首先想到的地方就应该是优化数据层了。

  在修改应用程序的出现性能问题的地方之前,你要先确认出问题的地方的程序看起来很严密,性能分析器对于查找应用程序哪些地方花费了多长时间非常有用。这些地方是我们用直觉感觉不到的。

  本文讨论两种类型的性能优化:一种是大的性能优化(big optimizations),如用asp.net的Cache;另一种是小的性能优化(tiny optimizations)。小幅的性能优化有时候非常有用。你只对你的代码作一个小的改到,然后一次调用它一千或一万次。作一次大的性能优化,你会发生你的应用程序的速度会有一个很大的提升。作一次小的性能优化,也许每次请求只能提高一微秒,但是如果每天的请求量很大的话,那么应用程序就有很显著的性能提升。

  数据层的性能

  当你要优化一个应用程序的性能的时候,你可以按下面的顺序工作:你的代码要访问数据库?如果要,访问数据库频率怎么样?同样,这种测试方法也可以用在用web services或Remoting的程序代码中。本文将不讨论用Web services和Remoting的程序优化的问题。

  如果在你的代码中有一段必须访问数据库的请求,而你在其它的地方又看到实现同样的功能 的代码,那么你首先要优化它。修改和完善继续测试,除非你有一个非常大的性能问题,你的时间最好花在优化查询,连接数据库,返回数据集的大小,以及一次查询往返回的时间上。

  根据经验的总结,让我们来看看十个能帮助你提升你的应用程序性能的经验,我将按将它们提升效率的多少从大到小小依次说明。

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品