PHP switch语句VS if elseif语句基准

时间:2015-07-19 11:23:35

标签: php mysql performance benchmarking

我查看此PHP website benchmark以查看switch statement VS if else if statement。我看到了这个结果:

交换机和if结构之间有区别吗?拨打1'000x

  • 141% *if and elseif (using ==)*总时间:165μsviewcode
  • 139% *if, elseif and else (using ==)*总时间:162μsviewcode
  • 110% *if and elseif (using ===)*总时间:128μsviewcode
  • 100% *if, elseif and else (using ===)*总时间:117μsviewcode
  • 149% *switch / caseTotal*时间:174μsviewview代码
  • 181% *switch / case / default*总时间:211μsviewcode

结果我看到if else if更快(+ **100 %** *if, elseif and else (using ===)* Total time: 117 µsview code)。

这个基准是真的,if, elseif and else (using ===)作为switch语句更好更快?!

2 个答案:

答案 0 :(得分:3)

您是否获得完全相同的结果将根据您评估的条件,设备,设置和其他因素而有所不同。但是,通常if / elseif / else进行严格比较(===)会优于switch。原因是switch uses "loose" (i.e., type-insensitive) comparison (==),它比类型敏感的比较(===)慢。

请记住,这些差异非常小,并且会因算法中的任何低效率而相形见绌。因此,在确定已消除其他主要瓶颈后,您应该只调整此类详细信息。

答案 1 :(得分:1)

默认PHP开关没有完全匹配。

exact match switch的一些示例。