From 85aa1b796e8bec2afcb2f53aac80f3e71b973df6 Mon Sep 17 00:00:00 2001 From: Antoine Musso Date: Fri, 14 Jan 2011 14:46:58 +0000 Subject: [PATCH] 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) --- maintenance/benchmarks/bench_if_switch.php | 88 ++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 maintenance/benchmarks/bench_if_switch.php 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 ); -- 2.20.1