繁体   English   中英

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

[英]Tips for making a asp.net web application run faster

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

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


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

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

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

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

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

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

ASP.NET的性能调优是一个很大的主题。 事实上,为了对您的问题提供全面的答案,我写了一本关于它的书: Ultra-Fast ASP.NET:使用ASP.NET和SQL Server构建超快速和超可扩展的Web站点

从高层次:

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

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

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

  • 保持viewstate大小
  • 回发次数减少。 尽可能使用javascript来避免它们。 验证控件是如何工作的一个很好的例子。
  • 有一个很好的缓存策略

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

  • 确保您的数据库查询不会让您失望
  • 最小化http请求
  • 将静态资源保存在单独的无Cookie域中
  • 在您花时间优化之前进行配置,这样您就不会浪费时间来优化错误的事情

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

我同意缓存。 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

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM