我们可以做些什么来使asp.net Web应用程序运行得比以前更快。它需要做什么调整?
答案 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。
从高层次开始:
我的方法主要是规范性的,而不是理论性的。您可以查看亚马逊上的评论,了解我的意思。
答案 3 :(得分:2)
这是一个很大的话题,但是我想到的主要内容是:
还有非asp.net特定的东西,比如:
您可能还会发现此问题有用:
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
希望这有帮助。