代码之家  ›  专栏  ›  技术社区  ›  Rune Grimstad

修复缓慢的GridView

  •  2
  • Rune Grimstad  · 技术社区  · 17 年前

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

    我将减速归因于两个问题领域:

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

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

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

    1 回复  |  直到 17 年前
        1
  •  6
  •   Ruben Bartelink    17 年前

    尝试使用ANTS或dotTrace等分析器——两者都有免费评估,或者如果您有许可证,Team System也有一个(合作伙伴?)。他们会告诉你时间消耗在哪里,或者至少帮助你明确在哪里寻找。

    听听Rico Mariani在最近的Deep Fried Bytes播客中的讲话——这是你度过的最好的40分钟。

    推荐文章