asp.net - 修复 GridView 速度缓慢的问题

标签 asp.net gridview

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

我将速度减慢追溯到两个问题领域:

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

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

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

最佳答案

尝试使用 ANTS 或 dotTrace 等分析器 - 两者都有免费评估,或者如果您获得许可,Team System 也有一个(合作伙伴?)。它们会告诉您时间都花在哪里,或者至少可以帮助您弄清楚应该在哪里查看。

并在最近的 Deep Fried Bytes 播客中聆听 Rico Mariani 的讲话 - 这是您度过的最美好的 40 分钟。

关于asp.net - 修复 GridView 速度缓慢的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/370661/

相关文章:

c# - 如何将响应行为添加到 asp :GridView

css - 如何将行顶部和底部边距添加到 asp.net gridview?

Jquery UI 选项卡不出现

c# - 质量和压缩与 system.drawing.imaging 之间的区别?

javascript - 为用户定义的热点选择平台/语言

asp.net - Gridview 将当前行与上一行进行比较

c# - 如何在这个 GridView 中删除员工及其培训记录?

asp.net - 有没有办法增加 ASP.NET 图表中显示的工具提示的长度?

c# - UPDATE 查询未更新 Access 数据库中的记录

android - Android 中 GridView 的自定义适配器