Qt和MFC的效率对比

之前一直做mfc,昨天看了一晚上的Qt,瞬间就喜欢上它了,Qt在windows下应该没有mfc的运行效率高,但是我想知道差多少,不知有没有大牛做过这方面的对比。Qt和MFC,WinForm,WPF这几个对比,在哪个位置?

------解决方案--------------------

Qt 是 C++ 的一个框架,要说慢的话,可能信号槽的触发会慢点。但是几乎可以忽略不计。

Qt 的官方文档有大约这么一段话

Compared to callbacks, signals and slots are slightly slower because of the increased flexibility they provide, although the difference for real applications is insignificant. In general, emitting a signal that is connected to some slots, is approximately ten times slower than calling the receivers directly, with non-virtual function calls. This is the overhead required to locate the connection object, to safely iterate over all connections (i.e. checking that subsequent receivers have not been destroyed during the emission), and to marshall any parameters in a generic fashion. While ten non-virtual function calls may sound like a lot, it's much less overhead than any new or delete operation, for example. As soon as you perform a string, vector or list operation that behind the scene requires new or delete, the signals and slots overhead is only responsible for a very small proportion of the complete function call costs.

The same is true whenever you do a system call in a slot; or indirectly call more than ten functions. On an i586-500, you can emit around 2,000,000 signals per second connected to one receiver, or around 1,200,000 per second connected to two receivers. The simplicity and flexibility of the signals and slots mechanism is well worth the overhead, which your users won't even notice.

就是说,信号槽机制比回调机制慢10倍。主要损失在类型检查和参数安全上。

想想也是,人们会关心点击一个按钮后,多长时间完成任务。而很少会关心点击一个按钮后,多快的开始任务。

至于,信号槽机制的性能,大约可以每秒处理2百万个信号。

也就是说,你有 2000个 定时器,每个定时器 每秒触发 1000次。就达到了信号槽机制的瓶颈。我想如果这样的话,MFC也会很累。

至于其他 框架,没有什么可比性,他们是托管代码。

欢迎访问我的文章,这里是编程pdf电子书供参考。

Qt和MFC的效率对比相关推荐

  1. QT和MFC的优缺点比较

    文章目录 Document/View model 伪对象 vs 真对象 创建界面 Unicode 国际化 resources问题 价格 发布 (MFC效率较高,但大量的Windows API和消息机制 ...

  2. c++图形界面开发中,Qt和MFC谁更胜一筹?

    在C++语言主导下,有MFC和QT俩大平台,很很多读者对于这俩大平台不是很了解,不知道这俩大平台到底需要学习哪一种,有何优势?就这个问题我将我收集的各个观点总结为以下几点: 一.QT 跨平台C++图形 ...

  3. [python]关于字符串查找和re正则表达式的效率对比

    最近需要在python中做大日志文件中做正则匹配 开始直接在for in 中每行做re.findall,后来发现,性能不行,就在re前面做一个基本的字符串包含判断 (str in str),如果不包含 ...

  4. 三种基本排序的实现及其效率对比:冒泡排序、选择排序和插入排序

    1 public class ThreeTypesOfBaseSort { 2 // ========================== 三种基本排序的效率对比 ================== ...

  5. php遍历数组哪个效率高,PHP遍历数组的三种方法及效率对比分析

    PHP遍历数组的三种方法及效率对比分析 发布于 2015-03-04 21:55:27 | 129 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext ...

  6. python和c运行速度的对比实验_Python中单线程、多线程和多进程的效率对比实验...

    原标题:Python中单线程.多线程和多进程的效率对比实验 文 | 饒木陽 Python是运行在解释器中的语言,查找资料知道,python中有一个全局锁(GIL),在使用多进程(Thread)的情况下 ...

  7. 【Groovy】Groovy 动态语言特性 ( Groovy 语言与 Java 语言执行效率对比 | 以动态特性编译的 Groovy 类 | 以静态特性编译的 Groovy 类 )

    文章目录 一.以动态特性编译的 Groovy 类 二.Groovy 语言与 Java 语言执行效率对比 三.以静态特性编译的 Groovy 类 一.以动态特性编译的 Groovy 类 Groovy 类 ...

  8. 线程的创建 验证线程之间共享数据 守护线程 线程进程效率对比 锁 死锁 递归锁...

    线程(from threading import Thread):CPU调度的最小单位 线程的两种创建方式:方式一: 1 from threading import Thread 2 def f1(i ...

  9. 数组常见的遍历循环方法、数组的循环遍历的效率对比

    1 遍历数组的方法 1-1.for / while 最普通的循环 效率最高 兼容ie6 tips:for循环更适用于循环的开始和结束已知,循环次数固定的场合:while循环更适合于条件不确定的场合 1 ...

最新文章

  1. String和StringBuilder
  2. sql语句查询性能的优化思想(个人理解)
  3. 树莓派 系统的 启动与安装
  4. IText实现url转pdf, 解决中文字体问题
  5. MyEclipse使用总结——使用MyEclipse打包带源码的jar包
  6. 那些奇奇怪怪的男性用品......
  7. java压缩成.tar_java压缩tar.gz | 学步园
  8. java常见数据校验
  9. 有意思,USB资料分享
  10. 性能测试:基础(2)
  11. 利用python抓取网页图片
  12. 阶段3 2.Spring_10.Spring中事务控制_11 spring5新特性的介绍
  13. XML语言的基本语法-Java Web
  14. X4扭曲字体或图形 coreldraw_CorelDRAWX4SP2简体中文正式版精简增强版
  15. 基于spss的非线性回归(non-linear regression)
  16. WinForm大型企业ERP系统
  17. 过大年,和人工智能一起对对联!
  18. tf 2.0 -- Model -- 模型
  19. 电脑开机后,显示屏无信号怎么处理?
  20. 密码学速查笔记(一)-- 分组对称加密

热门文章

  1. 不知道照片滤镜调节怎么调?快进来,查收这份滤镜调色攻略
  2. 面试中如何才能拿到阿里 P7 的职级
  3. 精华游戏算法整理_整理游戏
  4. Python实验|Excel 文件成绩处理
  5. php是脚本吗,php是脚本吗-PHP问题
  6. 模电实训:低频信号发生及处理电路
  7. Django 2.1.3 文档-模板-内置标签和过滤器(tagfilter)
  8. 【Eclipse】Mac版下载安装配置
  9. 老板键,摸鱼神器,一键隐藏电脑上任何运行中的软件
  10. CTS测试CtsWindowManagerDeviceTestCases模块的testShowWhenLockedImeActivityAndShowSoftInput测试fail项解决方法