修复一个缓慢的GridView

时间:2008-12-16 07:34:53

标签: asp.net gridview

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

我追溯到两个问题区域:

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

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

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

1 个答案:

答案 0 :(得分:6)

尝试使用ANTS或dotTrace等探查器 - 两者都有免费版本,或者如果您获得许可,Team System会有一个(合作伙伴?)。他们会告诉你消耗时间的地方,或者至少帮助你弄清楚在哪里看。

在最近的Deep Fried Bytes播客中收听Rico Mariani,这是你花费最多的40分钟。