博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
switch 与 if else 效率分析与总结
阅读量:6896 次
发布时间:2019-06-27

本文共 616 字,大约阅读时间需要 2 分钟。

hot3.png

本文是对网上一些讨论switch 与 if else 性能的参考资料的总结。

参考资料列表:

[1]

[2]

[3]

[4]

[5]

总结:

1.基本上大家都认同swich的效率要比if else高。

      从汇编语言分析,跳表技术,书籍参考《C++高效编程:内存与性能优化》第7章基本编程语句之7.1.4选择语句的性能比较 等等,多角度证明了该问题:switch效率高。

2.switch的优缺点

   缺点:不够灵活,switch仅支持 int,char,unsigned char 等基本类型;代码空间大。

   优点:代码结构清晰,效率高

3.if else的优缺点

  缺点:效率低(相对于switch)

  优点:使用灵活,代码空间小

其实if else作为关键字,本身的效率还是很高的。在使用的时候要考虑具体的需求,不必过分纠结与他们的性能差别。

下面是一个比较权威的说法:

《C++ Footprint and Performance Optimization》的7章,第一节。

然后根据大量的实际程序测试(不考虑不同的编译器优化程度差异,假设都是最好的优化),那么Switch语句击中第三个选项的时间跟if/else if语句击中第三个选项的时间相同。
击中第一,第二选项的速度if语句快,击中第四以及第四之后的选项的速度switch语句快。

转载于:https://my.oschina.net/u/2326085/blog/391350

你可能感兴趣的文章
poj 3461 Oulipo(KMP模板题)
查看>>
libavcodev may be vulnerable or is not supported, and should be updated for play video
查看>>
ECMAScript 5 —— Function 类型 (二)
查看>>
Java Web 自动登录
查看>>
IOS中文本框输入自动隐藏和自动显示
查看>>
邮件发送封装方法
查看>>
网络安全维护九眼智能大数据显身手
查看>>
算法导论笔记——第二十章 van Emde Boas树
查看>>
TCP的三次握手/四次挥手
查看>>
主席树(区间第k小)
查看>>
iOS开发:告诉git不要跟踪UserInterfaceState.xcuserstate
查看>>
一个简单的WPF界面框架
查看>>
zt:Linux查看程序端口占用情况
查看>>
iis下thinkphp配置url rewrite伪静态
查看>>
jQuery-表单选择器
查看>>
Unique Binary Search Trees-计算表示相同序列的不同BST个数
查看>>
git 第三天 SSH免密码登录 1
查看>>
Notepad++ 列操作
查看>>
window.XMLHttpRequest
查看>>
【原】iOS学习之ARC和非ARC文件混编
查看>>