Qt 处理大数据量解决方案

吥楛糖 发布于 2012/07/25 17:26
阅读 5K+
收藏 1
Qt
由于项目中需要用到QTableWidget来显示数据,测试过1W条数据在4-5s, 10W数据已经两分钟都没有显示出来,觉得处理的太慢无法接受。压力测试的目标是百万千万级别的大数据量,求解决方案!
加载中
0
中山野鬼
中山野鬼
没看懂,MODEL的事情,和你的VIEW有什么关系。。。
吥楛糖
吥楛糖
搞定了,现在100W数据大概5-6s.是我下面的代码中有for循环,延时了真实的效率
吥楛糖
吥楛糖
用最基本的方法就是添加10W行数据进去,每次都是NEW的,这样效率无法接受,在网上有看到别人做的TableWidget处理百万级别的数据量能做到没有延迟
0
吥楛糖
吥楛糖

@中山野鬼 可惜这个大神没有开源代码

0
kimmking
kimmking

10w的数据,加载到内存以后,处理的其实很快,就是渲染到table太慢,

常见的做法是基于table自定义一个组件,修改渲染行为,根据滚动条和resize操作,

计算要渲染的区域,只渲染这一块数据到UI,

这样就相当于每次操作都只加载了几十条数据到界面。

吥楛糖
吥楛糖
自定义table现在不考虑,太麻烦了,效果基本用样式表去实现,就用for循环创建,在里面new出100W条数据现在也就在6s左右
0
铂金小鬼
铂金小鬼

我觉得你这个思路有问题,现在先进点的界面,都是支持界面虚拟化的,肯定不需要实际创建这么多控件的。请看这个,加载100万条数据的表格:

http://demos.telerik.com/silverlight/#GridView/Performance

DavidWong8383
DavidWong8383
我装好了,怎么看代码?
吥楛糖
吥楛糖
这个demo确实是一个思路,在网上找到了MFC的虚拟列表控件,但是没有任何有关Qt实现虚拟列表控件技术的demo或者文章,求指导!
吥楛糖
吥楛糖
我试试
0
中山野鬼
中山野鬼

引用来自“蓄势减肥男”的答案

我觉得你这个思路有问题,现在先进点的界面,都是支持界面虚拟化的,肯定不需要实际创建这么多控件的。请看这个,加载100万条数据的表格:

http://demos.telerik.com/silverlight/#GridView/Performance

哈。这个靠谱。楼主说了半天,估计没理解我在说什么。。。
铂金小鬼
铂金小鬼
回复 @吥楛糖 : qt只是有兴趣学习,还是处于非常基础阶段,没办法解决这个问题哦!
吥楛糖
吥楛糖
回复 @kimmking : silverlight 不行啊,有没有Qt 实现的?
kimmking
kimmking
这个就是我说的那个方案啊~ 不过是silverlight实现, 我们以前做过extjs和flex的实现。
吥楛糖
吥楛糖
刚看到这个demo觉得真心不错,原来是我误会你了,哈哈
0
wangqiusheng
wangqiusheng
楼主,这个怎么做啊,我将串口接受到的数据,放在QTableWidget里面,一条一条显示???
吥楛糖
吥楛糖
一条一条显示的话就用不到这种方法了,不过你也可以参考,选择自定义模型对于一次性加载大量数据有很好的效果
0
DavidWong8383
DavidWong8383
帅哥,我只加了48行就卡好几秒啊。。你是怎么导入数据的啊,用循环好卡的说,有没有点demo可以学习啊
DavidWong8383
DavidWong8383
@吥楛糖 是逛奔的蜗牛。。。我搜到的是狂奔的蜗牛,谢谢了,美女
吥楛糖
吥楛糖
回复 @问剑中华 : http://www.cppblog.com/biao/archive/2011/10/27/159196.html
DavidWong8383
DavidWong8383
@吥楛糖 刚去看了,好多啊。。翻到第10页至今没发现和QT想关的。。可以给个地址么?谢谢
DavidWong8383
DavidWong8383
回复 @吥楛糖 : 哦,谢谢靓女——!
吥楛糖
吥楛糖
我不是男的啊....哭了...代码是公司的项目,你去狂奔的蜗牛博客看看
0
A
Alief

http://www.cppblog.com/biao/archive/2011/10/27/159196.html

返回顶部
顶部