码迷,mamicode.com
首页 > 其他好文 > 详细

可恶的QT隐式共享

时间:2015-07-29 21:10:31      阅读:93      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!