asp.net网站上的性能下降,从哪里开始寻找问题?

时间:2009-10-17 12:29:29

标签: asp.net javascript sql performance

我使用Asp.net C#3.5开发了一个网站,现在我觉得有些网页正在加载reeeaaally slooooow。我现在需要开始浏览网站并尝试找出最新动态。但我不知道从哪里开始,最有可能导致问题?在试图找出问题时,你通常从哪里开始?

一个非常慢的页面使用以下内容:

  • Asp.net C#3.5
  • AjaxControlToolkit(http://www.asp.net/ajax/AjaxControlToolkit/Samples/
    • RoundedCornersExtender
    • CollapsiblePanelExtender
  • 两个不同的UpdatePanel
  • 与MySql数据库的11个连接(一个非常重,使用一些联合和内连接)
  • 大多数与数据库的连接导致填充FormViews或GridViews,所以我在页面上总共有2个表单视图和6个网格视图(每个gridview显示最多10个项目)
  • CSS文件可以减缓网站的速度吗?我使用的CSS文件大约是60kb。

使用AjaxControlToolkit可以使网站变慢吗?有没有更好的方法在网站上使用javascripts?

我明白你不可能帮助我找到缓慢负载的问题但你会在哪里开始寻找问题? DataControllers? AjaxControlToolkit? sql?是一种简单的方法来查明mysql中的查询是否很慢?什么是慢?大型查询的速度是0.3秒?

如你所见,我有很多问题,也许你可以帮我开始正确的方向,非常感谢你的帮助!

5 个答案:

答案 0 :(得分:4)

您可以开始将Trace="True"添加到<%@ Page %>指令中,并查看您的网页花费最多的时间;还要检查你的web.config并禁用config debug

您还可以使用Performance Monitor来帮助您确定应用程序的主要瓶颈

答案 1 :(得分:3)

不要忘记

ASP.NET Tracing

可能是开始诊断ASP.NET问题的第一个也是最简单的事情。

如果您想要更深入一点,请不要忘记尝试:

ASP.NET Health Monitoring

从你的说法来看,不过,就个人而言,我会考虑减少这些数据库连接。数据访问始终是一个主要的瓶颈(或可能)。对于单个页面,11个连接是相当多的,特别是如果这些连接中的一个或多个像你说的那样“繁重”工作。页面可以拆分成两个或更多页面吗?如果问题出现在页面的呈现中,那么ASP.NET跟踪的输出应该对此有所帮助。

CSS文件虽然相当大,为60kb,但可能是最不可能的罪魁祸首,因为大多数浏览器会在第一次请求后缓存CSS文件。

答案 2 :(得分:1)

处理类似事情时我的一般方法总是一样的。我开始删除功能--javascript / css / include文件 - 直到页面变得更具响应性 - 通常我将页面恢复到最低的复杂性并从此处构建。逐个添加它们应该能够识别出瓶颈的位置。您还可以使用(用于MySQL)慢工具查询日志来识别有问题的查询。如果是这种情况,在phpmyadmin(或类似)中抽象出来并运行它们也可以帮助您识别哪些查询是问题。

我想你需要确定的第一件事是关于页面的“慢”是什么,是否渲染时间?加载时间?确定这一点应该会给你一个很好的起点。

答案 3 :(得分:1)

首先,您需要进行一些分析/测量以找出应用程序的哪个部分很慢,例如:

  • 长时间运行数据库查询
  • Web / db服务器上的CPU /内存使用情况
  • 在Web服务器和客户端(浏览器)之间传输的数据量
  • 在浏览器中呈现页面所花费的时间(javascript)

答案 4 :(得分:0)

我首先要检查这些SQL查询执行的时间。不确定将调用MySql的SQL Profiler类型工具。如果这不是罪魁祸首,您可以创建一个TraceAttribute,如here所示,以查看每个方法执行的时间。如果这不是罪魁祸首,您可以继续使用FireBug或Fiddler之类的东西来查看网站的每个部分需要加载多长时间以及每个请求需要多长时间。你也可以使用Tracing而不是Post Sharp,但是当你有锤子时,每个问题看起来都像钉子一样。