找回密码
 立即注册
收起左侧

处理、展示大量数据时的内存消耗

2
回复
6241
查看
[复制链接]
累计签到:2 天
连续签到:1 天
来源: 2017-2-10 15:58:49 显示全部楼层 |阅读模式
10Qter豆
源码在此:https://git.oschina.net/hzqst/Syscall-Monitor

10W数据量的时候就已经400MB内存消耗了,而且随着事件数增多内存消耗也线性增长,应该不是内存泄露的问题吧?


这是Clear过一次之后的内存消耗(刚运行时只用5MB内存)





数据结构个人认为设计的没问题,所有event是用QLinkedList串起来的,容器本身应该不是罪魁祸首
每个event都是new出来的,难道event本身吃了太多内存?


process monitor不知道用了什么黑科技 15W事件只有15MB内存消耗,没有发现大量的文件读写,所以应该不是把Event存在硬盘的。


附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册
回复

使用道具 举报

累计签到:410 天
连续签到:1 天
2017-2-11 20:57:04 显示全部楼层
你是用的 QTableWidget 还是 QTableView
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2017-2-11 23:19:25 显示全部楼层
a408815041 发表于 2017-2-11 20:57
你是用的 QTableWidget 还是 QTableView

肯定是QTableView呀
我做了大量测试发现,罪魁祸首是保存CUniqueEvent *用的std::list,这玩意保存1W个指针就吃几十MB内存了(release编译,不是debug哦)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了