From: Antoine Musso Date: Fri, 14 Jan 2011 14:46:58 +0000 (+0000) Subject: lame benchmark of if/elseif/else versus switch/case/default X-Git-Tag: 1.31.0-rc.0~32544 X-Git-Url: http://git.cyclocoop.org/%40spipnet%40?a=commitdiff_plain;h=85aa1b796e8bec2afcb2f53aac80f3e71b973df6;p=lhc%2Fweb%2Fwiklou.git lame benchmark of if/elseif/else versus switch/case/default if is faster : $ php bench_if_switch.php --count 20000 20000 times: function bench_if_switch->doElseIf() : 204.64ms ( 0.01ms each) 20000 times: function bench_if_switch->doSwitch() : 272.98ms ( 0.01ms each) --- diff --git a/maintenance/benchmarks/bench_if_switch.php b/maintenance/benchmarks/bench_if_switch.php new file mode 100644 index 0000000000..1f46bca63f --- /dev/null +++ b/maintenance/benchmarks/bench_if_switch.php @@ -0,0 +1,88 @@ +mDescription = "Benchmark if elseif... versus switch case."; + } + + public function execute() { + $this->bench( array( + array( 'function' => array( $this, 'doElseIf' ) ), + array( 'function' => array( $this, 'doSwitch' ) ), + )); + print $this->getFormattedResults(); + } + + // bench function 1 + function doElseIf() { + $a = 'z'; + if( $a == 'a') {} + elseif( $a == 'b') {} + elseif( $a == 'c') {} + elseif( $a == 'd') {} + elseif( $a == 'e') {} + elseif( $a == 'f') {} + elseif( $a == 'g') {} + elseif( $a == 'h') {} + elseif( $a == 'i') {} + elseif( $a == 'j') {} + elseif( $a == 'k') {} + elseif( $a == 'l') {} + elseif( $a == 'm') {} + elseif( $a == 'n') {} + elseif( $a == 'o') {} + elseif( $a == 'p') {} + else {} + } + + // bench function 2 + function doSwitch() { + $a = 'z'; + switch( $a ) { + case 'b': break; + case 'c': break; + case 'd': break; + case 'e': break; + case 'f': break; + case 'g': break; + case 'h': break; + case 'i': break; + case 'j': break; + case 'k': break; + case 'l': break; + case 'm': break; + case 'n': break; + case 'o': break; + case 'p': break; + default: + } + } +} + +$maintClass = 'bench_if_switch'; +require_once( DO_MAINTENANCE );