【问题标题】:Fixing a slow GridView修复缓慢的 GridView
【发布时间】:2008-12-16 07:34:52
【问题描述】:

我试图确定为什么 asp.net 网格视图如此缓慢。网格视图包含在一个自定义子类中,该子类添加了一个自定义寻呼机并进行了一些特殊的格式化。此外,自定义网格视图包含在用户控件中,该控件将网格视图放在更新面板中,并将其与对象数据源相结合,使控件易于使用。

我已经将减速追踪到两个问题领域:

  • 首先是渲染的 html 和 viewstate 的大小。我设法通过将视图状态呈现给会话变量而不是隐藏字段来改进这一点,但我可能会重写控件以根本不使用视图状态。
  • 但是,我的主要问题是控件的呈现。在一个简单的页面上,唯一的控件是我的用户控件,即使禁用了视图状态,渲染一个 40 列 x 20 行的网格也需要几秒钟!查看跟踪我发现 PreRender 阶段需要 95% 的时间,所以我认为问题就在那里。

那么,我的问题是我应该如何解决这个问题?我在跟踪 asp.net 在 PreRender 阶段中所做的事情时遇到问题。我在调用的用户控件中有一些代码,但大部分时间都花在了我的代码之外。
我尝试下载 asp.net 的调试符号,但 Visual Studio 仍然不允许我进入代码,并且跟踪在这里没有提供太多信息。

有没有其他人遇到过这种情况?我首先怀疑我的数据源,但是数据库调用很快,所以问题不存在。

【问题讨论】:

    标签: asp.net gridview


    【解决方案1】:

    尝试使用 ANTS 或 dotTrace 之类的分析器 - 两者都有免费的评估,或者如果您获得许可,Team System 也有(合作伙伴?)。它们会向您显示时间消耗在哪里,或者至少可以帮助您明确在哪里查看。

    并在最近的 Deep Fried Bytes 播客中收听 Rico Mariani - 您将度过的最美好的 40 分钟。

    【讨论】:

    • 我刚刚对 Web 应用程序进行了跟踪,结果非常有趣!看来问题不是我想的那样。谢谢!
    • 哇,我得到了我第一个接受答案的徽章:P 说真的,这个播客非常值得一听(就像 Rico 的博客一样)
    • 为老朋友+1。很高兴在这里见到你,伙计 :) Mark Lysaght
    猜你喜欢
    • 2020-08-14
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多