首页 > 其他 > 详细

可恶的QT隐式共享

时间:2015-07-29 21:07:51      阅读:106      评论:0      收藏:0      [点我收藏+]

这个问题隐藏的很深,一般不容易察觉它造成的问题,而只是享受它提供的好处。

我发现它现在至少造成两个问题:

1. 把大量的QString放到QMap里,使用完毕后清空QMap,然而因为隐式共享的原因,实际上QString占用的大量内存得不到释放。这样程序积累了大量无用数据的内存,从此程序运行变得异常缓慢。

2. QFileInfo也有隐式共享问题,造成读取新文件信息的时候,估计要和旧文件信息全部对比一遍(就算是通过hash对比也很慢啊,我这里测试文件有11万个呢),确定没有这个新文件,然后才开始真正工作。这样效率极低。部分解决办法是使用const解决QFileInfo的问题。但是QString却不能使用const,因为我中间还要修改它。

只能慢慢研究了~

官方文档:

http://doc.qt.io/qt-5/qstring.html

中文博客:

http://blog.csdn.net/yestda/article/details/17893221

http://blog.chinaunix.net/uid-27177626-id-3949985.html

可恶的QT隐式共享

原文:http://www.cnblogs.com/findumars/p/4687275.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!