我的问题与aspx页面的性能提高有关。因此,在阅读这篇文章后,请评论是否有可能提高本页面的性能。
这是一个场景。
我正在使用以下工具开发一个asp.net web应用程序
ASPX页面包含
这些网格上的操作是-插入、更新、删除、复制、删除所有。
所有这些操作都是通过部分回发完成的。
数据库访问次数不多,因为大多数数据都缓存在appfabric中。
现在,这听起来可能有些怪异,但在这一页中有数千行代码。代码后面大约有30k行,jS中有5k行,aspx页面中有大约4k行(html/js加起来)。代码中有复杂的逻辑,它运行在页面加载以及每个部分回发上,并且大多数网格在几乎每次回发时都是重新绑定(Ed)的。
我们所做的事情,以提高性能(这并没有多大帮助)。注意:再次重写整个页面不是一个选项,所以所有的增强都必须在这个页面中进行。
页面几乎没有任何静态内容。页缓存,不可能查看此页的使用情况。
我不知道这是否让任何人感到惊讶,但是这个页面上的部分回发操作大约需要4-6秒(Request+Response+Render)。我认为这是相当的fas,看看在后台运行的代码。但客户可不这么觉得。
期望页面上的任何操作不应超过1-1.5秒.
问题
RowCount
的次数比RowCount
多得多。我知道每个项目都需要这样做,比如页眉、页脚和项,但是如果我的行数为5,为什么这些方法被调用超过10次?Rebind()
方法(可能这就是第3种方法的原因)。有人能告诉我什么是正确的方式和位置调用重新绑定吗?我知道Telerik网格在插入时调用重新绑定隐式,但是在什么情况下我们需要显式地调用重新绑定?我试图检查整个代码库,并试图找出瓶颈。
如果有人给我任何建议,让我准备在代码上试用,我会非常感激的。
如果还需要更多的信息,请告诉我。
谢谢。
编辑
进一步的分析,我已经检查了整个页面的视图状态,它大约是33 it。另外,当我从页面中删除AjaxSettings时,页面在2/3秒内加载得相当快。所以我觉得页面的some化在呈现页面时产生了一些问题。
我还记录了服务器进程的时间,根据网格的工作时间大约需要1/2秒。
发布于 2014-08-20 07:24:03
经过大量的分析,并在不同的层中进行挖掘,我们发现有几个存储过程是罪魁祸首。程序中也发现了一些不寻常的调用,这在很大程度上减缓了页面的速度。修复它给了我们很好的性能提升。此外,我们还必须在网格渲染事件中做一些调整。
我不确定这个答案是否对未来的人有帮助,但我希望它至少能给出一些指点。在这个节目单上,戴纳通斯真的很有用。
发布于 2015-02-11 14:15:16
在我的例子中,Telerik的数据访问没有正确配置,这导致数百个单独的SQL查询来填充一个控件,而不是一次执行一个将所有数据输入的查询。与其重复我们为分析和修复它而采取的所有步骤,我希望只要简单地发布到我所写的关于链接的博客文章的链接就可以了。
https://stackoverflow.com/questions/22954677
复制相似问题