PageRenderTime 27ms CodeModel.GetById 30ms RepoModel.GetById 0ms app.codeStats 0ms

/conditionals.php

https://github.com/andrewmriley/PHP-Speed-Tests
PHP | 303 lines | 249 code | 54 blank | 0 comment | 56 complexity | 89868f12be6a8e0590ee03eb5293a175 MD5 | raw file
  1. <?php
  2. $total_loops = 1000000;
  3. $some_result = false;
  4. $time_start = microtime(true);
  5. for($x = 0; $x < $total_loops; $x++) {
  6. if(true) {
  7. $some_result = true;
  8. } else {
  9. $some_result = false;
  10. }
  11. }
  12. $time_end = microtime(true);
  13. $t = $time_end - $time_start;
  14. echo '(if true) time: ' . $t . "\n";
  15. $time_start = microtime(true);
  16. for($x = 0; $x < $total_loops; $x++) {
  17. if(false) {
  18. $some_result = true;
  19. } else {
  20. $some_result = false;
  21. }
  22. }
  23. $time_end = microtime(true);
  24. $t = $time_end - $time_start;
  25. echo '(if false) time: ' . $t . "\n";
  26. $time_start = microtime(true);
  27. for($x = 0; $x < $total_loops; $x++) {
  28. if(true) {
  29. $some_result = true;
  30. } else if(false) {
  31. $some_result = false;
  32. }
  33. }
  34. $time_end = microtime(true);
  35. $t = $time_end - $time_start;
  36. echo '(if else if true) time: ' . $t . "\n";
  37. $time_start = microtime(true);
  38. for($x = 0; $x < $total_loops; $x++) {
  39. if(false) {
  40. $some_result = true;
  41. } else if(true) {
  42. $some_result = false;
  43. }
  44. }
  45. $time_end = microtime(true);
  46. $t = $time_end - $time_start;
  47. echo '(if else if false) time: ' . $t . "\n";
  48. $time_start = microtime(true);
  49. for($x = 0; $x < $total_loops; $x++) {
  50. if(true) {
  51. $some_result = true;
  52. } elseif(false) {
  53. $some_result = false;
  54. }
  55. }
  56. $time_end = microtime(true);
  57. $t = $time_end - $time_start;
  58. echo '(if elseif true) time: ' . $t . "\n";
  59. $time_start = microtime(true);
  60. for($x = 0; $x < $total_loops; $x++) {
  61. if(false) {
  62. $some_result = true;
  63. } elseif(true) {
  64. $some_result = false;
  65. }
  66. }
  67. $time_end = microtime(true);
  68. $t = $time_end - $time_start;
  69. echo '(if elseif false) time: ' . $t . "\n";
  70. $time_start = microtime(true);
  71. for($x = 0; $x < $total_loops; $x++) {
  72. $some_result = (true) ? true : false;
  73. }
  74. $time_end = microtime(true);
  75. $t = $time_end - $time_start;
  76. echo '(ternary true) time: ' . $t . "\n";
  77. $time_start = microtime(true);
  78. for($x = 0; $x < $total_loops; $x++) {
  79. $some_result = (true == true) ? true : false;
  80. }
  81. $time_end = microtime(true);
  82. $t = $time_end - $time_start;
  83. echo '(ternary positive true) time: ' . $t . "\n";
  84. $time_start = microtime(true);
  85. for($x = 0; $x < $total_loops; $x++) {
  86. $some_result = (true != false) ? true : false;
  87. }
  88. $time_end = microtime(true);
  89. $t = $time_end - $time_start;
  90. echo '(ternary negative true) time: ' . $t . "\n";
  91. $time_start = microtime(true);
  92. for($x = 0; $x < $total_loops; $x++) {
  93. $some_result = (false) ? true : false;
  94. }
  95. $time_end = microtime(true);
  96. $t = $time_end - $time_start;
  97. echo '(ternary false) time: ' . $t . "\n";
  98. $time_start = microtime(true);
  99. for($x = 0; $x < $total_loops; $x++) {
  100. $some_result = (true == false) ? true : false;
  101. }
  102. $time_end = microtime(true);
  103. $t = $time_end - $time_start;
  104. echo '(ternary positive false) time: ' . $t . "\n";
  105. $time_start = microtime(true);
  106. for($x = 0; $x < $total_loops; $x++) {
  107. $some_result = (true != true) ? true : false;
  108. }
  109. $time_end = microtime(true);
  110. $t = $time_end - $time_start;
  111. echo '(ternary negative false) time: ' . $t . "\n";
  112. $time_start = microtime(true);
  113. for($x = 0; $x < $total_loops; $x++) {
  114. $some_result = (true == true);
  115. }
  116. $time_end = microtime(true);
  117. $t = $time_end - $time_start;
  118. echo '(boolean positive true) time: ' . $t . "\n";
  119. $time_start = microtime(true);
  120. for($x = 0; $x < $total_loops; $x++) {
  121. $some_result = (true != false);
  122. }
  123. $time_end = microtime(true);
  124. $t = $time_end - $time_start;
  125. echo '(boolean negative true) time: ' . $t . "\n";
  126. $time_start = microtime(true);
  127. for($x = 0; $x < $total_loops; $x++) {
  128. $some_result = (true == false);
  129. }
  130. $time_end = microtime(true);
  131. $t = $time_end - $time_start;
  132. echo '(boolean positive false) time: ' . $t . "\n";
  133. $time_start = microtime(true);
  134. for($x = 0; $x < $total_loops; $x++) {
  135. $some_result = (true != true);
  136. }
  137. $time_end = microtime(true);
  138. $t = $time_end - $time_start;
  139. echo '(boolean negative false) time: ' . $t . "\n";
  140. $time_start = microtime(true);
  141. for($x = 0; $x < $total_loops; $x++) {
  142. switch (true){
  143. case true:
  144. $some_result = 'test';
  145. break;
  146. case false:
  147. $some_result = 'test';
  148. break;
  149. }
  150. }
  151. $time_end = microtime(true);
  152. $t = $time_end - $time_start;
  153. echo '(switch conditional first) time: ' . $t . "\n";
  154. $time_start = microtime(true);
  155. for($x = 0; $x < $total_loops; $x++) {
  156. switch (false){
  157. case true:
  158. $some_result = 'test';
  159. break;
  160. case false:
  161. $some_result = 'test';
  162. break;
  163. }
  164. }
  165. $time_end = microtime(true);
  166. $t = $time_end - $time_start;
  167. echo '(switch conditional second) time: ' . $t . "\n";
  168. $time_start = microtime(true);
  169. for($x = 0; $x < $total_loops; $x++) {
  170. switch (true){
  171. case true:
  172. $some_result = 'test';
  173. break;
  174. default:
  175. $some_result = 'test';
  176. break;
  177. }
  178. }
  179. $time_end = microtime(true);
  180. $t = $time_end - $time_start;
  181. echo '(switch conditional default not used) time: ' . $t . "\n";
  182. $time_start = microtime(true);
  183. for($x = 0; $x < $total_loops; $x++) {
  184. switch (false){
  185. case true:
  186. $some_result = 'test';
  187. break;
  188. default:
  189. $some_result = 'test';
  190. break;
  191. }
  192. }
  193. $time_end = microtime(true);
  194. $t = $time_end - $time_start;
  195. echo '(switch conditional default) time: ' . $t . "\n";
  196. $example_array = array('one', 'two', 'three');
  197. $time_start = microtime(true);
  198. for($x = 0; $x < $total_loops; $x++) {
  199. if (TRUE) {
  200. $some_result = join(' ', $example_array);
  201. } else {
  202. $some_result = join(' ', $example_array);
  203. }
  204. }
  205. $time_end = microtime(true);
  206. $t = $time_end - $time_start;
  207. echo '(fat if) time: ' . $t . "\n";
  208. $time_start = microtime(true);
  209. for($x = 0; $x < $total_loops; $x++) {
  210. if (TRUE) {
  211. $some_result = join(' ', $example_array);
  212. }
  213. }
  214. $time_end = microtime(true);
  215. $t = $time_end - $time_start;
  216. echo '(skinny if) time: ' . $t . "\n";
  217. $time_start = microtime(true);
  218. for($x = 0; $x < $total_loops; $x++) {
  219. $pre_computed = join(' ', $example_array);
  220. if (TRUE) {
  221. $some_result = 'asdf';
  222. } else {
  223. $some_result = $pre_computed;
  224. }
  225. }
  226. $time_end = microtime(true);
  227. $t = $time_end - $time_start;
  228. echo '(meduim if) time: ' . $t . "\n";
  229. $time_start = microtime(true);
  230. for($x = 0; $x < $total_loops; $x++) {
  231. $some_result = join(' ', $example_array);
  232. if (FALSE) {
  233. $some_result = 'ddd';
  234. }
  235. }
  236. $time_end = microtime(true);
  237. $t = $time_end - $time_start;
  238. echo '(never if) time: ' . $t . "\n";
  239. $time_start = microtime(true);
  240. for($x = 0; $x < $total_loops; $x++) {
  241. $some_result = join(' ', $example_array);
  242. if (TRUE) {
  243. $some_result = 'ddd';
  244. }
  245. }
  246. $time_end = microtime(true);
  247. $t = $time_end - $time_start;
  248. echo '(always if) time: ' . $t . "\n";
  249. ?>