标签:
这个问题隐藏的很深,一般不容易察觉它造成的问题,而只是享受它提供的好处。
我发现它现在至少造成两个问题:
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
标签:
原文地址:http://www.cnblogs.com/findumars/p/4687275.html