什么原因导致页面呈现缓慢?

时间:2009-07-08 12:50:38

标签: asp.net performance optimization

我很困惑。我查看了根据我的老板加载“慢”的页面调用的跟踪,导致页面部分加载,然后“跳转”到回发的记忆滚动位置。

我最终发现,使用我的跟踪,我从Begin PreInit到End Render的整个加载时间为1.94秒,其中1.5个在Begin PreRender和End PreRender之间花费。

有什么可能导致这种情况的想法吗?对于End PreRenderComplete,下一个最大加载时间是0.14秒。

问题可能来自我对SQL Server的查询,或者页面上的控件数量过多,即使大多数都是“隐藏”的?

[edit:]当我显示某个表单时,我的页面加载似乎很长。我的总渲染大小为91537字节,其中44483个专用于该特定形式。我的观点似乎有点巨大。另外:404文件到JS文件会导致负载延迟吗?

[更新:]所以我找到了运行时间最长的查询,看起来即使它看起来很粗糙,但它已经在页面加载之前就已经运行很久了。 作为补充信息:我在控件中使用了相当多的SqlDataSources,以填充我的下拉列表和其他有趣的东西。这会使我的应用程序混乱吗?

5 个答案:

答案 0 :(得分:6)

根据我的经验(与您相同的问题),这是一个SQL问题的90%。

在您正在调用的查询周围放置一些秒表,以找出哪个查询运行缓慢。

渲染asp.net控件不能用这么久....

答案 1 :(得分:4)

为了找出瓶颈的原因,您应该使用ANTS Profiler之类的工具或类似的工具来分析您的代码。

通过显示哪些代码行比其他代码行慢,分析器将允许您查明问题区域。

答案 2 :(得分:3)

我会使用YSlow来确定它是来自客户端还是服务器端。我们有时会在某些查询中添加计时器,然后在html注释中输出执行时间...当然,在测试完成后删除它们。

页面是否会调用外部网站上托管的任何内容?

答案 3 :(得分:0)

最好的办法是使用Perfomance Wizard in Visual Studio并查看页面的调用树。它将为您提供有关确切性能瓶颈的更多详细信息。

当页面上声明的复杂控件太多时,我已经看到了这种类型的性能。虽然它也很容易与SQL相关。要确定您需要查看“呼叫树”并找出最昂贵的呼叫。

答案 4 :(得分:0)

当然,如果它与sql相关,正如许多人所说,“sql server profiler”是使用的工具(假设你正在运行mssql)。 mysql有“jetprofiler”(。com),我还没试过。一旦你找到了慢查询,它就不是一个索引问题了。