3v4l.org

run code in 300+ PHP versions simultaneously
<?php $data = array(); // Preparing test data array for ($i=0;$i<200;$i++) { for ($j=0;$j<500;$j++) { $data['some']['keys'][$i]['should not']['matter'][$j] = $i . ' - ' . $j; } if (memory_get_usage() > 50000000) break; } echo "Created $i elements\n"; function formatBytes($bytes, $precision = 2) { $units = array('B', 'KB', 'MB', 'GB', 'TB'); $bytes = max($bytes, 0); $pow = floor(($bytes ? log($bytes) : 0) / log(1024)); $pow = min($pow, count($units) - 1); return round($bytes / (1 << (10 * $pow)), $precision) . ' ' . $units[$pow]; } $start_usage = memory_get_usage(); $start_peak = memory_get_peak_usage(); $s = serialize($data); $usage = memory_get_usage(); $peak = memory_get_peak_usage(); echo "Serialize started at " . formatBytes($start_usage) . " usage and " . formatBytes($start_peak) . " peak\n"; echo "Peak usage increased by " . formatBytes($peak - $start_peak) . "\n"; echo "Actual usage increased by " . formatBytes($usage - $start_usage) . "\n"; echo "Resulting string size " . formatBytes(strlen($s)) . "\n";

preferences:
34.79 ms | 402 KiB | 5 Q