• 3900阅读
  • 2回复

内存碎片问题,Qt有对内存管理? [复制链接]

上一主题 下一主题
离线spscc1008
 

只看楼主 倒序阅读 楼主  发表于: 2012-04-09
Qt的主子线程通信,底层实现都是void QCoreApplication::postEvent(QObject *receiver, QEvent *event, int priority)来通信的,这是线程安全的。但也发现个问题,若用户频繁调用此postEvent函数来处理界面上的一些数据,会不会存在内存碎片问题,主要原因是postEvent函数的第二个参数需要用户new出来。
离线fish0619

只看该作者 1楼 发表于: 2012-04-09
msvcrt一般会帮你管理内存碎片。如果不符合你的要求的话,可以自己重载new,先申请一块内存,每次new QEvent 就放在这段内存里面。你可以Google一下内存池技术。

我觉得吧。一般应用程序的性能还不至于使用内存池技术。优化之前要先确定你的程序哪部分影响到整个程序的性能。
离线spscc1008

只看该作者 2楼 发表于: 2012-04-09
对于长时间运行应用软件,你觉得是否需要考虑优化。
快速回复
限100 字节
 
上一个 下一个