使asp.net Web应用程序运行得更快的提示

时间:2009-12-31 16:59:34

标签: asp.net asp.net-3.5 performance

我们可以做些什么来使asp.net Web应用程序运行得比以前更快。它需要做什么调整?

5 个答案:

答案 0 :(得分:6)

为了让任何应用程序运行得更快,首先找出它花费时间的地方,然后花更少的时间在那里。使用分析器。


剖析器简化了将应用程序分解为更小块的过程,然后加快了各个部分的速度。如果你买不起分析器,你可以自己做。

例如,您说平均响应时间为4-5秒。那是很长一段时间。这5秒内发生了什么?这一切都在等待数据库吗?您可以尝试在应用程序之外运行查询,以查看它们需要多长时间。您可以运行SQL Server Profiler以在一段时间内记录数据库事务,然后通过数据库调整向导运行结果。它可能有一些建议来更改数据库的索引。

您可以使用Fiddler,或启用页面跟踪来查明您的网页是否过大。跟踪可以告诉您页面操作的特定阶段需要多长时间。也许你花了很长时间来渲染某些页面。

此外,您需要查看服务器的性能。你使用太多的CPU了吗?内存太多了?您是否花时间进行页面颠簸,将ASP.NET工作进程的页面敲出内存以引入SQL Server页面,只是在数据库查询完成且工作进程需要时将这些页面删除再跑一次?

将问题分解成小块,然后修复碎片。

答案 1 :(得分:5)

缓存 - 页面和数据 - 以及优化数据访问可能是在不更改硬件的情况下提高性能的关键因素。除此之外,您还可以查看群集/负载平衡以获得更多可用资源。

答案 2 :(得分:3)

ASP.NET的性能调优是一个很大的主题。事实上,为了对您的问题提供全面的答案,我写了一本关于它的书:Ultra-Fast ASP.NET: Build Ultra-Fast and Ultra-Scalable web sites with ASP.NET and SQL Server

从高层次开始:

  • 最大限度地减少客户端和服务器之间以及服务器和数据库之间的往返次数
  • 关注感知表现
  • 尽量减少阻止来电
  • 所有层级的缓存
  • 优化磁盘I / O管理
  • 优化浏览器对象加载和呈现顺序
  • 使用Ajax,Silverlight和JavaScript避免完整页面重新加载
  • 避免同步数据库写入
  • 使用监控和检测
  • 了解SQL Server如何管理内存
  • 在数据层有效使用分区

我的方法主要是规范性的,而不是理论性的。您可以查看亚马逊上的评论,了解我的意思。

答案 3 :(得分:2)

这是一个很大的话题,但是我想到的主要内容是:

  • 保持视图状态缩小
  • 更少的回发。尽可能使用javascript来避免它们。验证控件是如何工作的一个很好的例子。
  • 有一个很好的缓存策略

还有非asp.net特定的东西,比如:

  • 确保您的数据库查询不会让您陷入困境
  • 最小化http请求
  • 将静态资源保存在单独的无Cookie域中
  • 配置文件,然后再花时间优化,以免浪费时间优化错误的事情

您可能还会发现此问题有用:
https://stackoverflow.com/questions/72394/what-should-a-developer-know-before-building-a-public-web-site

答案 4 :(得分:0)

我同意缓存。 ASP.NET确实有很好的内置缓存机制。

我还建议对应用程序进行分析,就像上面已经推荐的那样。

这是一篇关于一些免费的.NET分析器的文章的链接,也是付费的。

http://www.devcurry.com/2009/11/free-net-profilers-and-some-paid-ones.html

编辑:您可能也想查看此StackOverflow线程

https://stackoverflow.com/questions/308816/any-good-free-net-profiler

希望这有帮助。