Asp.net网站性能缓慢,如何开始寻找问题?

3
我使用Asp.net C# 3.5开发了一个网站,现在有些页面加载非常慢。我需要开始查找导致网站变慢的原因。但是我不知道从哪里开始,最可能引起问题的是什么?当您尝试查找错误时,通常从哪里开始?其中一个非常缓慢的页面使用以下内容:
- Asp.net C# 3.5 - AjaxControlToolkit (http://www.asp.net/ajax/AjaxControlToolkit/Samples/) - RoundedCornersExtender - CollapsiblePanelExtender - 两个不同的UpdatePanels - 对MySql数据库的11个连接(一个相当重要,使用一些联合和内部连接) - 大多数与数据库的连接都会导致填充FormViews或GridViews,因此我在页面上有2个formviews和6个gridviews(每个gridview最多显示10个项) - CSS文件会减慢网站速度吗?我使用的CSS文件约为60kb。
使用AjaxControlToolkit会使网站变慢吗?有没有更好的方法在网站上使用javascripts?
我知道你无法帮助我找出加载缓慢的问题,但你会从哪里开始查找问题呢?DataControllers?AjaxControlToolkit?SQL?有没有简单的方法来查找MySQL中的查询是否缓慢?什么是缓慢的?对于大型查询,0.3秒算缓慢吗?
正如你所见,我有很多问题,也许你可以帮助我朝正确的方向开始工作,非常感谢你的帮助!

也许你的网站在第一次加载时很慢,因为应用程序池被回收了,你可以尝试使用这段代码来保持你的网站始终处于预热状态:http://stackoverflow.com/questions/27339997/how-to-always-your-warm-up-asp-net-websites-webform-mvc - VnDevil
5个回答

4
你可以在<%@ Page %>指令中添加Trace="True",查看你的页面花费了最多的时间;同时检查你的web.config并禁用debug
你也可以使用Performance Monitor来帮助你识别应用程序的主要瓶颈。

哦我的天啊,我简直不敢相信我竟然忘记把调试设置为false了。多亏了你的简单建议,我成功将网站的加载时间减半!我也会研究一下跟踪。 - Yetti

3

不要忘记使用ASP.NET跟踪作为诊断ASP.NET问题的第一个和最简单的工具。

如果您想更深入地了解,请不要忘记尝试:ASP.NET健康监控

根据您所说,我个人认为可能需要减少数据库连接。数据访问通常是主要瓶颈之一。对于单个页面来说,11个连接已经相当多了,特别是如果其中一个或多个连接执行“重型”任务。该页面是否可以拆分成两个或更多个页面?如果问题出在页面的渲染上,ASP.NET跟踪的输出应该有所帮助。

虽然CSS文件很大,达到了60kb,但它可能是最不可能出现问题的罪魁祸首,因为大多数浏览器在第一次请求后会缓存CSS文件。


1

处理类似问题时,我的通用方法总是相同的。我开始删除功能 - javascript/css/include文件 - 直到页面变得更加响应 - 通常我将页面降至最小复杂度并从此构建。逐个添加它们,您应该能够确定瓶颈在哪里。您还可以使用工具(例如MySQL)慢查询日志来识别有问题的查询。将查询抽象出来并在phpmyadmin(或类似工具)中运行它们也可以帮助您识别是否存在问题查询。

我想你需要首先确定页面上“缓慢”的确切原因,是渲染时间?加载时间?确定这一点应该为您提供一个良好的起点。


1
首先,您需要进行一些分析/测量,以找出应用程序中哪个部分较慢,例如:
  • 长时间运行的数据库查询
  • Web/数据库服务器上的CPU/内存使用情况
  • Web服务器和客户端(浏览器)之间传输的数据量
  • 在浏览器中呈现页面所需的时间(JavaScript)

谢谢!我在一个共享主机上,所以我看不到长时间运行的数据库或CPU/内存。但我会逐个测试我的查询,然后像Yuriy提到的那样尝试使用Firebug。 - Martin

0

我会先检查一下这些SQL查询的执行时间。不确定MySQL的SQL Profiler类型工具叫什么。如果这不是问题的根源,你可以创建一个TraceAttribute,如这里所示,来查看每个方法的执行时间。如果这还不是问题的根源,你可以使用类似FireBug或Fiddler的工具来查看网站的每个部分加载时间和每个请求的耗时。你也可以使用Tracing而不是Post Sharp,但当你手上只有一把锤子时,每个问题都看起来像钉子。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接