此外,Qt的UI运行效率与wxWidgets,Windows的MFC,Linux的GTK+也都没法比。
主要原因之一是Qt的信号槽这个核心机制,给开发带来便利,但因此也丧失了一些性兄陪能。Qt的信号槽调用涉及链表 *** 作,事件处理,还包括迅尘核最伤性能的互斥锁,等等,相比直接回调方式。多出100多行代码,按官方说法,信号槽调用比直接回调慢了10倍左右。可是估计一旦遇到锁竞争,恐怕远远不只10倍了吧。Qt的UI与网络模块都严重依赖信号槽机制。
不过,相对于Java、C#之类,Qt毕竟是C++,运行效率自然要胜出很多。
Qt开发效率在C++库中绝对是高的,Qt自带的一套非常完备,应有尽有。
运行效率,在Qt中分为好几套图形系统,差不多代表了2D描画的发展史。最经典的软描画系统,性能只能说差强人意,而搭建在OpenGL上的新系统效率就高的多。而且,作为原生C++语言(QML除外),天亩掘生在性能上也有加成。
QT和MFC的优劣:
(1)开发速度
就整体而言,MFC可能会快捷睁敏一些,因为Windows平台的开发工具大多很智能,因为立足于Windows的开发人群很广,从菜鸟到专业人士(开发人员一多,技术参考就多,周围可以咨询问题的人就多)。
相比较而言,Qt基于Linux,可用的开发工具不多,而且这些工具大都比较专业,多是第三方的产品,加上这些工具的集成度不高灶早燃,支持的第三方库也没有支持MFC的第三方库多,因而从这一点看,MFC略胜一筹。
不过,Qt自从被诺基亚公司收购后,官方发布了跨平台集成开发环境Qt Creator,之后的走向就不好说了,作者个人的总体感觉是Qt Creator和VS差距比较大,还需要改进。
(2)运行效率
MFC采用浅层封装,运行效率比较高,加上VC对Windows进行了针对性的优化,因而整体性能是比较高的,但是如果加入第三方库就不敢保证整体的高性能了。
Qt库比较庞大,封装层次较深,所以运行效率比MFC低,但是在如今主流计算机系统的配置下,人们还会介意这点性能差别吗?
(3)应用范围
如今Windows的普及率无人能及,MFC的使用人隐虚数自然就多,相比而言,Qt主要是Linux下的开发人员在使用。MFC不支持嵌入式开发(主要是指手机平台)。
而Qt有对应的支持模块,虽然这一手机开发领域被Java碾压,但总归还是有Qt的使用空间。
(4)学习难度
Qt的封装方式比较明晰,和系统隔离得比较好,作者个人觉得学习的门槛不高。而MFC则较难精通,因为深入开发之后还需要了解SDK,否则开发出的程序比较初级。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)