Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $array = [
- 'aaaa' => [
- 'k1' => str_repeat('a', 1000),
- ]
- ];
- switch ($argv[1] ?? 1) {
- default:
- case 1:
- $before = memory_get_usage();
- foreach ($array as &$element) {
- $element['k2'] = str_repeat('a', 1000);
- echo 'Ref in: ' . (memory_get_usage() - $before) . PHP_EOL; // 1328
- }
- echo 'Ref out: ' . (memory_get_usage() - $before) . PHP_EOL; // 1360
- break;
- case 2:
- $before = memory_get_usage();
- foreach ($array as $i => $element) {
- $array[$i]['k2'] = str_repeat('a', 1000);
- echo 'Direct in: ' . (memory_get_usage() - $before) . PHP_EOL; // 2032
- }
- echo 'Direct out: ' . (memory_get_usage() - $before) . PHP_EOL; // 1688
- break;
- case 3:
- $before = memory_get_usage();
- foreach ($array as $i => $element) {
- $element['k2'] = str_repeat('a', 1000);
- $array[$i] = $element;
- echo 'Get/Set in: ' . (memory_get_usage() - $before) . PHP_EOL; // 2032
- }
- echo 'Get/Set out: ' . (memory_get_usage() - $before) . PHP_EOL; // 1312
- break;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement