找回密码
 立即注册

QQ登录

只需一步,快速开始

sam
论坛元老   /  发表于:2012-3-3 16:21  /   查看:15291  /  回复:33
Hi

当我在Spread控件中操作大批量的数据(如:行500,列100的数据)。如何提高系统反映速度?
现在在加载以上数据时,特别慢。另外,在翻页时,也非常慢。看能否有办法加快速度。
我们是在Spread控件中做数据的编辑(增,删,改等操作)。现需要快速的操作。
非常感谢!

TestSpread.rar

1.99 MB, 下载次数: 458

rar

33 个回复

倒序浏览
sam
论坛元老   /  发表于:2012-3-3 16:22:00
沙发
注明:以上控件在我们实际操作过程中,是动态生成的。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-3-5 10:46:00
板凳

回复 2# sam 的帖子

在Web系统中数据传输时影响性能的一方面,同时从你代码来开,你使用循环给单元格的Text属性赋值,在实际中如果频繁访问Text属性会损失一些性能,你可以通过访问Value来赋值,性能会更好一些:

  1. //  将Text修改为Value
  2. this.FpSpread1.ActiveSheetView.Cells[m, n].Text = m.ToString() + "-" + n.ToString();
  3. // 修改为Value
  4. this.FpSpread1.ActiveSheetView.Cells[m, n].Value = m.ToString() + "-" + n.ToString();
复制代码
另外,还有一种为Spread设置数据的方法,就是设置数据源,相比通过循环设置单元格的值,这种方法速度会更快一些:
  1.     DataTable dt = new DataTable();
  2.     // 为 dt 准备数据,可以从数据库中查询,或者自己填充数据
  3.     this.FpSpread1.DataSource = dt;
复制代码
回复 使用道具 举报
sam
论坛元老   /  发表于:2012-3-14 22:45:00
地板
感谢以上的回复。确实改为用Value赋值会快很多。
另外,我这边有个问题,当我这边有个使用Spread for asp.net 控件的页面大小达到4~5M左右大的时候就会非常慢,每个操作都会卡,我的Spread控件中的资料为一页有500行,100列。
我看过里面的ViewState,会有很多。
我想请问:这种情况如何来提高系统的性能。前提是客户需要要求在一页500行100页中的表格中进行编辑。
烦请给出可行的解决方案。非常感谢!
以上问题非常急需解决。烦请尽快处理。谢谢!
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-3-15 10:21:00
5#
你好,sam

客服端操作的响应速度,在不改变数据量的前提下,提高客服端的硬件配置可能是提升性能的最有效方法。

下面是我做的测试和一些个人的看法:
针对你的描述我做了以下测试,我对Spread for asp.net和标准ASP.NET中的Table控件使用同样的数据源进行测试,得到以下数据:
1、从最终生成的HTML标签来看,Spread生成的标签比标准Table的要复杂,Table控件生成的HTML标签只包含了最基本的一些标签,<table><tr><td></td><......></tr><......></table>
2、对Spread和Table都使用500*100的数据源:
2.1拖动纵向滚动条的响应速度基本一致,是一个可以接受的想要速度
2.2选中一个单元格,Spread需要5s,Table需要3.5s
2.3选中同一行中连续的10个单元格,Spread需要7s,Table需要5s

3、对Spread和Table都使用500*10的数据源:
3.1拖动纵向滚动条的响应速度基本一致,是一个可以接受的想要速度
3.2选中一个单元格,Spread没有延迟,Table没有延迟
3.3选中同一行中连续的10个单元格,Spread没有延迟,Table没有延迟

综上:
在ASP.NET程序中影响性能的因素大概分为三类
1、后台代码的处理速度:比如访问Spread的Value属性比Text要快;相同代码的情况下,处理速度由服务器本身的硬件配置所决定
2、从服务端到客户端的传输速度:在同样数据量的情况下,这块性能由带宽决定
3、客户端的处理速度:因为ASP.NET程序最终会被解析为HTML标签,页面本身的复杂程度直接影响客服端的响应速度,在页面相同的情况下只有提升客服端的硬件配置,才能提升客服端的处理速度


建议:
所有B/S架构的系统都面临着一定程度的性能问题,在不能改变硬件配置的情况下,拆分数据是一种比较常用的解决方案,可以将大数据进行分页处理,对复杂表单拆分为多个小的表单。
回复 使用道具 举报
sam
论坛元老   /  发表于:2012-3-15 11:02:00
6#
嗨,Dof
非常感谢你的回复。
我这边的测试程序,当为一页为500行时,其操作的反映速度是比较慢的,特别是在翻页时,会特别慢。
能否把你的测试程序发过来,我这边可以参考下。谢谢!
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-3-15 11:21:00
7#
附件是我测试用的两个工程,WebApplication3测试的Spread,数据量500*100;WebApplication2测试的是Table,数据量500*100

WebApplication3.zip (2.61 MB, 下载次数: 391)
回复 使用道具 举报
sam
论坛元老   /  发表于:2012-3-15 11:49:00
8#

性能

嗨,我刚下了你的示例。如果是为500*100,则也会有延迟。
你使用我附件的例子优化看下。看能否提高响应速度。
即:在属标拖动时,速度要比较快。
看能否优化解决下。按我的例子。
谢谢!
还有在加载过程能否也提高速度呢?
回复 使用道具 举报
sam
论坛元老   /  发表于:2012-3-15 11:52:00
9#

性能

嗨,我刚下了你的示例。如果是为500*100,则也会有延迟。
你使用我附件的例子优化看下。看能否提高响应速度。
即:在属标拖动时,速度要比较快。
看能否优化解决下。按我的例子。
谢谢!
还有在加载过程能否也提高速度呢? TestSpreadControls.rar (1.79 MB, 下载次数: 402)
回复 使用道具 举报
sam
论坛元老   /  发表于:2012-3-15 11:53:00
10#

性能

TestSpreadControls.rar (1.79 MB, 下载次数: 383)
回复 使用道具 举报
1234下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部