Advertisement
phpist

Untitled

Oct 17th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. Объясните работу массива// Создаем большой массив.
  2. $a =[];
  3. for ($i = 1; $i <= 100000; $i++) $a[$i] = $i;
  4. // Ждем "переключения" секунды (для точности).
  5. for ($t = time(); $t == time(); );
  6. // Выполняем функцию в течение ровно 1 секунды.
  7. for ($N = 0, $t = time(); time() == $t; $N++) $func($a);
  8. printf("<tt>$func</tt> took %d itr/sec<br />", $N);
  9.  
  10.  
  11.  
  12. <?php ## Сравнение скорости разных видов передачи параметров.
  13. // Передача "по значению" без изменения параметра.
  14. function takeVal($a) { $x = $a[1234]; }
  15. // Передача "по ссылке" без изменения параметра.
  16. function takeRef(&$a) { $x = $a[1234]; }
  17. // Передача "по значению" С ИЗМЕНЕНИЕМ параметра.
  18. function takeValAndModif($a) { $a[1234]++; }
  19. // Передача "по ссылке" с изменением параметра.
  20. function takeRefAndModif(&$a) { $a[1234]++; }
  21.  
  22. // Тестируем разные функции на скорость.
  23. test("takeVal");
  24. test("takeRef");
  25. test("takeValAndModif");
  26. test("takeRefAndModif");
  27.  
  28. function test($func)
  29. {
  30. // Создаем большой массив.
  31. $a =[];
  32. for ($i = 1; $i <= 100000; $i++) $a[$i] = $i;
  33. // Ждем "переключения" секунды (для точности).
  34. for ($t = time(); $t == time(); );
  35. // Выполняем функцию в течение ровно 1 секунды.
  36. for ($N = 0, $t = time(); time() == $t; $N++) $func($a);
  37. printf("<tt>$func</tt> took %d itr/sec<br />", $N);
  38. }
  39. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement