搜索aspx页面返回缓慢

时间:2012-03-21 02:28:57

标签: asp.net performance load firebug

我有一个asp.net网站,有一个searchResult.aspx,它运行一个sql脚本从MS SQL服务器数据库中检索数据,然后将数据转换成HTML格式,该网站已部署在IIS7中。 5服务器。我已经实现了静态和动态压缩,这意味着我的所有js,css和aspx页面在渲染到浏览器之前都已经过压缩。

不幸的是,searchResult.aspx返回的速度非常慢,如果搜索一个大字,就像传记一样,它平均需要10秒以上才能返回。我使用firebug Net跟踪它,阻塞,DNS查找,连接和发送都不超过10毫秒,但等待时间超过10秒。所以我在函数Page_Load(object sender,EventArgs e)的开头和结尾添加了一些代码,还添加了HTML body元素的开头和结尾,如下所示:

   protected Stopwatch stopwatch = new Stopwatch();
   protected void Page_Load(object sender, EventArgs e)
    {
        stopwatch.Start();
        ....
        stopwatch.Stop();
        timeForSearch = stopwatch.Elapsed.Milliseconds;
     }


    <body>
      <%
       stopwatch.Reset();
        stopwatch.Start();
       %>
       ....


      <%stopwatch.Stop();%>
 <%=timeForSearch%>+<%=stopwatch.Elapsed.Milliseconds%>=<%=stopwatch.Elapsed.Milliseconds + timeForSearch%>

好的,通常timeForSearch和填充aspx页面的时间总共为1秒,但为什么页面加载需要10秒以上,任何帮助都将受到赞赏。


感谢您的回复,aspx页面已经被gzip改为8.2KB。不是一个大文件

2 个答案:

答案 0 :(得分:0)

尝试将@Page指令的Trace属性设置为true。

<%@ Page ... Trace="true" %>

在“跟踪信息”部分中,您将确定哪个页面生命周期事件需要更多时间来执行,并可能帮助您进行调试。

您使用的是母版页吗?您的页面上是否有任何用户控件?用户控制事件发生在父事件之后。即,UserControl.Init发生在Page.Init之后(但在Page.Load之前),而UserControl.Load发生在Page.Load之后。

如果是这样,您可能需要调查这些控件中的Page_Load。

答案 1 :(得分:0)

我想也许我修好了,我禁用了IIS日志,然后搜索页面可以在3到5秒内加载,看起来好像很多。但我仍在考虑禁用IIS日志是一个不错的选择。