Skip to content

Instantly share code, notes, and snippets.

@sang4lv
Created May 16, 2013 07:48
Show Gist options
  • Save sang4lv/5590092 to your computer and use it in GitHub Desktop.
Save sang4lv/5590092 to your computer and use it in GitHub Desktop.
Unsetting array memory
<?php
$init = memory_get_usage();
$time = microtime();
echo "method 1 (unset): " . $init . "<br />";
$array = array();
for($i = 0; $i < 1000; $i += 1) {
$array[] = 'string';
}
echo "after setup: " . memory_get_usage() . "<br />";
unset($array);
echo "diff: " . abs(memory_get_usage() - $init) . "<br />";
echo "time: " . abs(microtime() - $time) . "<br />";
echo "<br /><br />";
$init = memory_get_usage();
$time = microtime();
echo "method 2 (null): " . $init . "<br />";
$array = array();
for($i = 0; $i < 1000; $i += 1) {
$array[] = 'string';
}
echo "after setup: " . memory_get_usage() . "<br />";
$array = null;
echo "diff: " . abs(memory_get_usage() - $init) . "<br />";
echo "time: " . abs(microtime() - $time) . "<br />";
echo "<br /><br />";
$init = memory_get_usage();
$time = microtime();
echo "method 3 (array_pop): " . $init . "<br />";
$array = array();
for($i = 0; $i < 1000; $i += 1) {
$array[] = 'string';
}
echo "after setup: " . memory_get_usage() . "<br />";
for($i = 0; $i < count($array); $i += 1) {
array_pop($array);
}
echo "diff: " . abs(memory_get_usage() - $init) . "<br />";
echo "time: " . abs(microtime() - $time) . "<br />";
echo "<br /><br />";
$init = memory_get_usage();
$time = microtime();
echo "method 3 (array_shift): " . $init . "<br />";
$array = array();
for($i = 0; $i < 1000; $i += 1) {
$array[] = 'string';
}
echo "after setup: " . memory_get_usage() . "<br />";
for($i = 0; $i < count($array); $i += 1) {
array_shift($array);
}
echo "diff: " . abs(memory_get_usage() - $init) . "<br />";
echo "time: " . abs(microtime() - $time) . "<br />";
echo "<br /><br />";
$init = memory_get_usage();
$time = microtime();
echo "method 5 (unset elem): " . $init . "<br />";
$array = array();
for($i = 0; $i < 1000; $i += 1) {
$array[] = 'string';
}
echo "after setup: " . memory_get_usage() . "<br />";
for($i = 0; $i < count($array); $i += 1) {
unset($array[$i]);
}
echo "diff: " . abs(memory_get_usage() - $init) . "<br />";
echo "time: " . abs(microtime() - $time) . "<br />";
echo "<br /><br />";
?>
method 1 (unset): 346476
after setup: 439000
diff: 268
time: 0.001166
method 2 (null): 346744
after setup: 438976
diff: 80
time: 0.000607
method 3 (array_pop): 346824
after setup: 438976
diff: 48152
time: 0.001316
method 3 (array_shift): 394976
after setup: 438976
diff: 0
time: 0.010679
method 5 (unset elem): 394976
after setup: 438976
diff: 0
time: 0.000982
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment