Created
August 17, 2016 22:43
-
-
Save donquixote/60b7ff69a4f391ddb922a649e7d4cea3 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| // See http://stackoverflow.com/questions/4465046/whats-faster-ifreturnelse-return-or-ifreturn-return | |
| function else1($x) { | |
| if ($x === true) { | |
| return true; | |
| } | |
| else { | |
| return false; | |
| } | |
| } | |
| function else0($x) { | |
| if ($x === true) { | |
| return true; | |
| } | |
| return false; | |
| } | |
| call_user_func(function() { | |
| $n = 10000000; | |
| $dts_else1 = []; | |
| $dts_else0 = []; | |
| $t = microtime(true); | |
| for ($i = 0; $i < $n; ++$i) { | |
| else0(true); | |
| else0(false); | |
| } | |
| $t = ($dts_else0[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else1(true); | |
| else1(false); | |
| } | |
| $t = ($dts_else1[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else0(true); | |
| else0(false); | |
| } | |
| $t = ($dts_else0[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else1(true); | |
| else1(false); | |
| } | |
| $t = ($dts_else1[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else0(true); | |
| else0(false); | |
| } | |
| $t = ($dts_else0[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else1(true); | |
| else1(false); | |
| } | |
| $t = ($dts_else1[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else0(true); | |
| else0(false); | |
| } | |
| $t = ($dts_else0[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else1(true); | |
| else1(false); | |
| } | |
| $t = ($dts_else1[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else0(true); | |
| else0(false); | |
| } | |
| $t = ($dts_else0[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else1(true); | |
| else1(false); | |
| } | |
| $t = ($dts_else1[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else0(true); | |
| else0(false); | |
| } | |
| $t = ($dts_else0[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else1(true); | |
| else1(false); | |
| } | |
| $t = ($dts_else1[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else0(true); | |
| else0(false); | |
| } | |
| $t = ($dts_else0[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else1(true); | |
| else1(false); | |
| } | |
| $t = ($dts_else1[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else0(true); | |
| else0(false); | |
| } | |
| $t = ($dts_else0[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else1(true); | |
| else1(false); | |
| } | |
| $t = ($dts_else1[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else0(true); | |
| else0(false); | |
| } | |
| $t = ($dts_else0[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else1(true); | |
| else1(false); | |
| } | |
| $t = ($dts_else1[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else0(true); | |
| else0(false); | |
| } | |
| $t = ($dts_else0[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else1(true); | |
| else1(false); | |
| } | |
| $t = ($dts_else1[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else0(true); | |
| else0(false); | |
| } | |
| $t = ($dts_else0[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else1(true); | |
| else1(false); | |
| } | |
| $t = ($dts_else1[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else0(true); | |
| else0(false); | |
| } | |
| $t = ($dts_else0[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else1(true); | |
| else1(false); | |
| } | |
| $t = ($dts_else1[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else0(true); | |
| else0(false); | |
| } | |
| $t = ($dts_else0[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else1(true); | |
| else1(false); | |
| } | |
| $t = ($dts_else1[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else0(true); | |
| else0(false); | |
| } | |
| $t = ($dts_else0[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else1(true); | |
| else1(false); | |
| } | |
| $t = ($dts_else1[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else0(true); | |
| else0(false); | |
| } | |
| $t = ($dts_else0[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else1(true); | |
| else1(false); | |
| } | |
| $t = ($dts_else1[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else0(true); | |
| else0(false); | |
| } | |
| $t = ($dts_else0[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else1(true); | |
| else1(false); | |
| } | |
| $t = ($dts_else1[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else0(true); | |
| else0(false); | |
| } | |
| $t = ($dts_else0[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else1(true); | |
| else1(false); | |
| } | |
| $t = ($dts_else1[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else0(true); | |
| else0(false); | |
| } | |
| $t = ($dts_else0[] = microtime(true) - $t) + $t; | |
| for ($i = 0; $i < $n; ++$i) { | |
| else1(true); | |
| else1(false); | |
| } | |
| $dts_else1[] = microtime(true) - $t; | |
| sort($dts_else0); | |
| sort($dts_else1); | |
| assert(count($dts_else0) === count($dts_else1)); | |
| $ratios = []; | |
| $logs = []; | |
| foreach ($dts_else0 as $i_dt => $dt_else0) { | |
| $ratios[] = $ratio = $dts_else1[$i_dt] / $dt_else0; | |
| $logs[] = log($ratio) * 1000; | |
| } | |
| print "else / no_else\n"; | |
| print_r($ratios); | |
| print_r($logs); | |
| }); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment