Advertisement
Guest User

Untitled

a guest
Aug 20th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. <?php
  2.  
  3. $array = [
  4. 'aaaa' => [
  5. 'k1' => str_repeat('a', 1000),
  6. ]
  7. ];
  8.  
  9. switch ($argv[1] ?? 1) {
  10. default:
  11. case 1:
  12. $before = memory_get_usage();
  13. foreach ($array as &$element) {
  14. $element['k2'] = str_repeat('a', 1000);
  15. echo 'Ref in: ' . (memory_get_usage() - $before) . PHP_EOL; // 1328
  16. }
  17. echo 'Ref out: ' . (memory_get_usage() - $before) . PHP_EOL; // 1360
  18. break;
  19.  
  20. case 2:
  21. $before = memory_get_usage();
  22. foreach ($array as $i => $element) {
  23. $array[$i]['k2'] = str_repeat('a', 1000);
  24. echo 'Direct in: ' . (memory_get_usage() - $before) . PHP_EOL; // 2032
  25. }
  26. echo 'Direct out: ' . (memory_get_usage() - $before) . PHP_EOL; // 1688
  27. break;
  28.  
  29. case 3:
  30. $before = memory_get_usage();
  31. foreach ($array as $i => $element) {
  32. $element['k2'] = str_repeat('a', 1000);
  33. $array[$i] = $element;
  34. echo 'Get/Set in: ' . (memory_get_usage() - $before) . PHP_EOL; // 2032
  35. }
  36. echo 'Get/Set out: ' . (memory_get_usage() - $before) . PHP_EOL; // 1312
  37. break;
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement