dprq18175 2015-07-19 11:23
浏览 60
已采纳

PHP switch语句VS if elseif语句基准

I check this PHP website benchmark for check switch statement VS if else if statement. And I see this result:

Is a there a difference between switch and if structures?. Call 1'000x

  • 141 % *if and elseif (using ==)* Total time: 165 µsview code
  • 139 % *if, elseif and else (using ==)* Total time: 162 µsview code
  • 110 % *if and elseif (using ===)* Total time: 128 µsview code
  • 100 % *if, elseif and else (using ===)* Total time: 117 µsview code
  • 149 % *switch / caseTotal* time: 174 µsview code
  • 181 % *switch / case / default* Total time: 211 µsview code

In result i see if else if is faster (+ **100 %** *if, elseif and else (using ===)* Total time: 117 µsview code).

This benchmark is true and if, elseif and else (using ===) is better and faster as switch statement?!

  • 写回答

2条回答 默认 最新

  • duanbi3786 2015-07-19 11:26
    关注

    Whether you get exactly the same results will vary based on what conditions you are evaluating, your equipment, settings, and other factors. But yes, generally if/elseif/else with strict comparison (===) will outperform switch. The reason is that switch uses "loose" (i.e., type-insensitive) comparison (==), which is slower than type-sensitive comparison (===).

    Keep in mind that these differences are extremely tiny and are going to be dwarfed by any inefficiencies in your algorithm. So, you should only tune for details like this after you are sure you have eliminated other major bottlenecks.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题