下面是qt的一些性能优化建议,有人翻译过来的:
1)不要频繁的new delete窗体,改用hide(), show()
2)不要在启动时就建立所有的窗体,使用延迟机制或者在需要时再建立。
3) 使用静态链接。 关于这一点我还没有尝试,不过据QT的资料说,它可以加快启动时间和内存占用率。缺点是对flexibility和robustness的损害。
./configure -static可以将QT设置为静态链接模式.
4)不要使用new,delete机制,因为很多编译器对这类内存分配函数的执行效率不高。可以使用:
void *operator new[](size_t size)
{
return malloc(size);
}
void *operator new(size_t size)
{
return malloc(size);
}
void operator delete[](void *ptr)
{
free(ptr);
}
void operator delete[](void *ptr, size_t)
{
free(ptr);
}
void operator delete(void *ptr)
{
free(ptr);
}
void operator delete(void *ptr, size_t)
{
free(ptr);
}
将缺省的new delete替换掉。
5)关闭双缓冲。通常为了防止界面闪烁,所有的窗体并不直接写屏幕,而是先写入一个buffer,然后由QT,负责将其写入硬件显示缓冲区。关闭双缓冲有两种方式:
1。为每一个QWidget设置Qt::WA_PaintOnScreen属性。
2。使用QDirectPainter
[ 此帖被wato在2009-11-27 09:13重新编辑 ]