<?php
function formatMemoryUsage($usage) {
$unit = array(' B', 'kB', 'MB', 'GB', 'TB');
$factor = floor((strlen($usage) - 1) / 3);
return sprintf('%.2f %s (%d bytes) ', $usage / pow(1024, $factor), $unit[$factor], $usage);
}
for($size = 1000; $size < 100000; $size *= 2) {
echo PHP_EOL . '> Testing size: ' . number_format($size) . PHP_EOL;
echo ' Array()' . PHP_EOL;
for($s = microtime(true), $m = memory_get_usage(true), $container = Array(), $i = 0; $i < $size; $i++) $container[$i] = null;
echo ' - Write - time : ' . str_pad(microtime(true) - $s, 20, '0') . ' - memory: ' . formatMemoryUsage(memory_get_usage(true) - $m) . PHP_EOL;
$s = microtime(true);
foreach ($container as $key => $value) {
$void = $value;
}
echo ' - Read - time : ' . str_pad(microtime(true) - $s, 20, '0') . PHP_EOL;
unset($container);
echo ' SplFixedArray()' . PHP_EOL;
for($s = microtime(true), $m = memory_get_usage(true), $container = new SplFixedArray($size), $i = 0; $i < $size; $i++) $container[$i] = null;
echo ' - Write - time : ' . str_pad(microtime(true) - $s, 20, '0') . ' - memory: ' . formatMemoryUsage(memory_get_usage(true) - $m) . PHP_EOL;
$s = microtime(true);
foreach ($container as $key => $value) {
$void = $value;
}
echo ' - Read - time : ' . str_pad(microtime(true) - $s, 20, '0') . PHP_EOL;
unset($container);
}
preferences:
33.37 ms | 402 KiB | 5 Q