3v4l.org

run code in 300+ PHP versions simultaneously
<?php printf("test.php: php %s, phar-api %s\n", PHP_VERSION, PharData::apiVersion()); class Metrics { public $steps = array(); public function emit($what, $usage) { static $prev; static $beat = 0; if ($prev) { $this->steps[$beat] = $usage - $prev; } printf("[%s %05d] %s: %s\n", PHP_VERSION, ++$beat, $what, $prev ? sprintf('%d %+d', $usage, $usage - $prev): $usage); $prev = $usage; } public function tick($what) { $this->emit($what, memory_get_usage()); } public function summary() { $steps = $this->steps; $count = count($steps); $steps[] = null; for ($i = 1; $i < $count;) { $v = $steps[$i]; for ($j = $i + 1; $j <= $count; $j++) { $w = $steps[$j]; if ($w !== $v) { $c = $i === $j - 1 ? 1 : $j - $i; $cc[$v] = (isset($cc[$v]) ? $cc[$v] : 0) + $c; printf( "%-8s %-2s %+d %d\n", 1 === $c ? $i : sprintf('%d-%d', $i, $j - 1), 1 === $c ? '' : $j - $i, $v, $cc[$v] ); $i = $j; break; } } } } } $metrics = new Metrics(); $metrics->tick('start'); function phar_tick() { static $i = 0; $path = sprintf('%s/%d.tar', sys_get_temp_dir(), ++$i); $phar = new PharData($path); $phar->addEmptyDir('test'); $phar->delete('test'); unset($phar); unlink($path); } for ($i = 0; $i < 100; $i++) { phar_tick(); $metrics->tick('after'); } gc_collect_cycles(); $metrics->tick('end'); $metrics->summary();
Output for 8.0.0 - 8.0.3
test.php: php 8.0.3, phar-api 1.1.1 [8.0.3 00001] start: 395736 [8.0.3 00002] after: 396592 +856 [8.0.3 00003] after: 397608 +1016 [8.0.3 00004] after: 397608 +0 [8.0.3 00005] after: 397608 +0 [8.0.3 00006] after: 397608 +0 [8.0.3 00007] after: 397608 +0 [8.0.3 00008] after: 397608 +0 [8.0.3 00009] after: 397608 +0 [8.0.3 00010] after: 397928 +320 [8.0.3 00011] after: 397928 +0 [8.0.3 00012] after: 397928 +0 [8.0.3 00013] after: 397928 +0 [8.0.3 00014] after: 397928 +0 [8.0.3 00015] after: 397928 +0 [8.0.3 00016] after: 397928 +0 [8.0.3 00017] after: 397928 +0 [8.0.3 00018] after: 398568 +640 [8.0.3 00019] after: 398568 +0 [8.0.3 00020] after: 398568 +0 [8.0.3 00021] after: 398568 +0 [8.0.3 00022] after: 398568 +0 [8.0.3 00023] after: 398568 +0 [8.0.3 00024] after: 398568 +0 [8.0.3 00025] after: 398568 +0 [8.0.3 00026] after: 398568 +0 [8.0.3 00027] after: 398568 +0 [8.0.3 00028] after: 398568 +0 [8.0.3 00029] after: 398568 +0 [8.0.3 00030] after: 398568 +0 [8.0.3 00031] after: 398568 +0 [8.0.3 00032] after: 398568 +0 [8.0.3 00033] after: 398568 +0 [8.0.3 00034] after: 399848 +1280 [8.0.3 00035] after: 399848 +0 [8.0.3 00036] after: 399848 +0 [8.0.3 00037] after: 399848 +0 [8.0.3 00038] after: 399848 +0 [8.0.3 00039] after: 399848 +0 [8.0.3 00040] after: 399848 +0 [8.0.3 00041] after: 399848 +0 [8.0.3 00042] after: 399848 +0 [8.0.3 00043] after: 399848 +0 [8.0.3 00044] after: 399848 +0 [8.0.3 00045] after: 399848 +0 [8.0.3 00046] after: 399848 +0 [8.0.3 00047] after: 399848 +0 [8.0.3 00048] after: 399848 +0 [8.0.3 00049] after: 399848 +0 [8.0.3 00050] after: 399848 +0 [8.0.3 00051] after: 399848 +0 [8.0.3 00052] after: 399848 +0 [8.0.3 00053] after: 399848 +0 [8.0.3 00054] after: 399848 +0 [8.0.3 00055] after: 399848 +0 [8.0.3 00056] after: 399848 +0 [8.0.3 00057] after: 399848 +0 [8.0.3 00058] after: 399848 +0 [8.0.3 00059] after: 399848 +0 [8.0.3 00060] after: 399848 +0 [8.0.3 00061] after: 399848 +0 [8.0.3 00062] after: 399848 +0 [8.0.3 00063] after: 399848 +0 [8.0.3 00064] after: 399848 +0 [8.0.3 00065] after: 399848 +0 [8.0.3 00066] after: 405480 +5632 [8.0.3 00067] after: 405480 +0 [8.0.3 00068] after: 405480 +0 [8.0.3 00069] after: 405480 +0 [8.0.3 00070] after: 405480 +0 [8.0.3 00071] after: 405480 +0 [8.0.3 00072] after: 405480 +0 [8.0.3 00073] after: 405480 +0 [8.0.3 00074] after: 405480 +0 [8.0.3 00075] after: 405480 +0 [8.0.3 00076] after: 405480 +0 [8.0.3 00077] after: 405480 +0 [8.0.3 00078] after: 405480 +0 [8.0.3 00079] after: 405480 +0 [8.0.3 00080] after: 405480 +0 [8.0.3 00081] after: 405480 +0 [8.0.3 00082] after: 405480 +0 [8.0.3 00083] after: 405480 +0 [8.0.3 00084] after: 405480 +0 [8.0.3 00085] after: 405480 +0 [8.0.3 00086] after: 405480 +0 [8.0.3 00087] after: 405480 +0 [8.0.3 00088] after: 405480 +0 [8.0.3 00089] after: 405480 +0 [8.0.3 00090] after: 405480 +0 [8.0.3 00091] after: 405480 +0 [8.0.3 00092] after: 405480 +0 [8.0.3 00093] after: 405480 +0 [8.0.3 00094] after: 405480 +0 [8.0.3 00095] after: 405480 +0 [8.0.3 00096] after: 405480 +0 [8.0.3 00097] after: 405480 +0 [8.0.3 00098] after: 405480 +0 [8.0.3 00099] after: 405480 +0 [8.0.3 00100] after: 405480 +0 [8.0.3 00101] after: 405480 +0 [8.0.3 00102] end: 405480 +0 1 +856 1 2 +1016 1 3-8 6 +0 6 9 +320 1 10-16 7 +0 13 17 +640 1 18-32 15 +0 28 33 +1280 1 34-64 31 +0 59 65 +5632 1
Process exited with code 137.
Output for 7.4.0 - 7.4.16
test.php: php 7.4.16, phar-api 1.1.1 [7.4.16 00001] start: 396016 [7.4.16 00002] after: 396872 +856 [7.4.16 00003] after: 397888 +1016 [7.4.16 00004] after: 397888 +0 [7.4.16 00005] after: 397888 +0 [7.4.16 00006] after: 397888 +0 [7.4.16 00007] after: 397888 +0 [7.4.16 00008] after: 397888 +0 [7.4.16 00009] after: 397888 +0 [7.4.16 00010] after: 398208 +320 [7.4.16 00011] after: 398208 +0 [7.4.16 00012] after: 398208 +0 [7.4.16 00013] after: 398208 +0 [7.4.16 00014] after: 398208 +0 [7.4.16 00015] after: 398208 +0 [7.4.16 00016] after: 398208 +0 [7.4.16 00017] after: 398208 +0 [7.4.16 00018] after: 398848 +640 [7.4.16 00019] after: 398848 +0 [7.4.16 00020] after: 398848 +0 [7.4.16 00021] after: 398848 +0 [7.4.16 00022] after: 398848 +0 [7.4.16 00023] after: 398848 +0 [7.4.16 00024] after: 398848 +0 [7.4.16 00025] after: 398848 +0 [7.4.16 00026] after: 398848 +0 [7.4.16 00027] after: 398848 +0 [7.4.16 00028] after: 398848 +0 [7.4.16 00029] after: 398848 +0 [7.4.16 00030] after: 398848 +0 [7.4.16 00031] after: 398848 +0 [7.4.16 00032] after: 398848 +0 [7.4.16 00033] after: 398848 +0 [7.4.16 00034] after: 400128 +1280 [7.4.16 00035] after: 400128 +0 [7.4.16 00036] after: 400128 +0 [7.4.16 00037] after: 400128 +0 [7.4.16 00038] after: 400128 +0 [7.4.16 00039] after: 400128 +0 [7.4.16 00040] after: 400128 +0 [7.4.16 00041] after: 400128 +0 [7.4.16 00042] after: 400128 +0 [7.4.16 00043] after: 400128 +0 [7.4.16 00044] after: 400128 +0 [7.4.16 00045] after: 400128 +0 [7.4.16 00046] after: 400128 +0 [7.4.16 00047] after: 400128 +0 [7.4.16 00048] after: 400128 +0 [7.4.16 00049] after: 400128 +0 [7.4.16 00050] after: 400128 +0 [7.4.16 00051] after: 400128 +0 [7.4.16 00052] after: 400128 +0 [7.4.16 00053] after: 400128 +0 [7.4.16 00054] after: 400128 +0 [7.4.16 00055] after: 400128 +0 [7.4.16 00056] after: 400128 +0 [7.4.16 00057] after: 400128 +0 [7.4.16 00058] after: 400128 +0 [7.4.16 00059] after: 400128 +0 [7.4.16 00060] after: 400128 +0 [7.4.16 00061] after: 400128 +0 [7.4.16 00062] after: 400128 +0 [7.4.16 00063] after: 400128 +0 [7.4.16 00064] after: 400128 +0 [7.4.16 00065] after: 400128 +0 [7.4.16 00066] after: 405760 +5632 [7.4.16 00067] after: 405760 +0 [7.4.16 00068] after: 405760 +0 [7.4.16 00069] after: 405760 +0 [7.4.16 00070] after: 405760 +0 [7.4.16 00071] after: 405760 +0 [7.4.16 00072] after: 405760 +0 [7.4.16 00073] after: 405760 +0 [7.4.16 00074] after: 405760 +0 [7.4.16 00075] after: 405760 +0 [7.4.16 00076] after: 405760 +0 [7.4.16 00077] after: 405760 +0 [7.4.16 00078] after: 405760 +0 [7.4.16 00079] after: 405760 +0 [7.4.16 00080] after: 405760 +0 [7.4.16 00081] after: 405760 +0 [7.4.16 00082] after: 405760 +0 [7.4.16 00083] after: 405760 +0 [7.4.16 00084] after: 405760 +0 [7.4.16 00085] after: 405760 +0 [7.4.16 00086] after: 405760 +0 [7.4.16 00087] after: 405760 +0 [7.4.16 00088] after: 405760 +0 [7.4.16 00089] after: 405760 +0 [7.4.16 00090] after: 405760 +0 [7.4.16 00091] after: 405760 +0 [7.4.16 00092] after: 405760 +0 [7.4.16 00093] after: 405760 +0 [7.4.16 00094] after: 405760 +0 [7.4.16 00095] after: 405760 +0 [7.4.16 00096] after: 405760 +0 [7.4.16 00097] after: 405760 +0 [7.4.16 00098] after: 405760 +0 [7.4.16 00099] after: 405760 +0 [7.4.16 00100] after: 405760 +0 [7.4.16 00101] after: 405760 +0 [7.4.16 00102] end: 405760 +0 1 +856 1 2 +1016 1 3-8 6 +0 6 9 +320 1 10-16 7 +0 13 17 +640 1 18-32 15 +0 28 33 +1280 1 34-64 31 +0 59 65 +5632 1
Process exited with code 137.
Output for 7.3.0 - 7.3.28
test.php: php 7.3.28, phar-api 1.1.1 [7.3.28 00001] start: 395952 [7.3.28 00002] after: 396784 +832 [7.3.28 00003] after: 397800 +1016 [7.3.28 00004] after: 397800 +0 [7.3.28 00005] after: 397800 +0 [7.3.28 00006] after: 397800 +0 [7.3.28 00007] after: 397800 +0 [7.3.28 00008] after: 397800 +0 [7.3.28 00009] after: 397800 +0 [7.3.28 00010] after: 398120 +320 [7.3.28 00011] after: 398120 +0 [7.3.28 00012] after: 398120 +0 [7.3.28 00013] after: 398120 +0 [7.3.28 00014] after: 398120 +0 [7.3.28 00015] after: 398120 +0 [7.3.28 00016] after: 398120 +0 [7.3.28 00017] after: 398120 +0 [7.3.28 00018] after: 398760 +640 [7.3.28 00019] after: 398760 +0 [7.3.28 00020] after: 398760 +0 [7.3.28 00021] after: 398760 +0 [7.3.28 00022] after: 398760 +0 [7.3.28 00023] after: 398760 +0 [7.3.28 00024] after: 398760 +0 [7.3.28 00025] after: 398760 +0 [7.3.28 00026] after: 398760 +0 [7.3.28 00027] after: 398760 +0 [7.3.28 00028] after: 398760 +0 [7.3.28 00029] after: 398760 +0 [7.3.28 00030] after: 398760 +0 [7.3.28 00031] after: 398760 +0 [7.3.28 00032] after: 398760 +0 [7.3.28 00033] after: 398760 +0 [7.3.28 00034] after: 400040 +1280 [7.3.28 00035] after: 400040 +0 [7.3.28 00036] after: 400040 +0 [7.3.28 00037] after: 400040 +0 [7.3.28 00038] after: 400040 +0 [7.3.28 00039] after: 400040 +0 [7.3.28 00040] after: 400040 +0 [7.3.28 00041] after: 400040 +0 [7.3.28 00042] after: 400040 +0 [7.3.28 00043] after: 400040 +0 [7.3.28 00044] after: 400040 +0 [7.3.28 00045] after: 400040 +0 [7.3.28 00046] after: 400040 +0 [7.3.28 00047] after: 400040 +0 [7.3.28 00048] after: 400040 +0 [7.3.28 00049] after: 400040 +0 [7.3.28 00050] after: 400040 +0 [7.3.28 00051] after: 400040 +0 [7.3.28 00052] after: 400040 +0 [7.3.28 00053] after: 400040 +0 [7.3.28 00054] after: 400040 +0 [7.3.28 00055] after: 400040 +0 [7.3.28 00056] after: 400040 +0 [7.3.28 00057] after: 400040 +0 [7.3.28 00058] after: 400040 +0 [7.3.28 00059] after: 400040 +0 [7.3.28 00060] after: 400040 +0 [7.3.28 00061] after: 400040 +0 [7.3.28 00062] after: 400040 +0 [7.3.28 00063] after: 400040 +0 [7.3.28 00064] after: 400040 +0 [7.3.28 00065] after: 400040 +0 [7.3.28 00066] after: 405672 +5632 [7.3.28 00067] after: 405672 +0 [7.3.28 00068] after: 405672 +0 [7.3.28 00069] after: 405672 +0 [7.3.28 00070] after: 405672 +0 [7.3.28 00071] after: 405672 +0 [7.3.28 00072] after: 405672 +0 [7.3.28 00073] after: 405672 +0 [7.3.28 00074] after: 405672 +0 [7.3.28 00075] after: 405672 +0 [7.3.28 00076] after: 405672 +0 [7.3.28 00077] after: 405672 +0 [7.3.28 00078] after: 405672 +0 [7.3.28 00079] after: 405672 +0 [7.3.28 00080] after: 405672 +0 [7.3.28 00081] after: 405672 +0 [7.3.28 00082] after: 405672 +0 [7.3.28 00083] after: 405672 +0 [7.3.28 00084] after: 405672 +0 [7.3.28 00085] after: 405672 +0 [7.3.28 00086] after: 405672 +0 [7.3.28 00087] after: 405672 +0 [7.3.28 00088] after: 405672 +0 [7.3.28 00089] after: 405672 +0 [7.3.28 00090] after: 405672 +0 [7.3.28 00091] after: 405672 +0 [7.3.28 00092] after: 405672 +0 [7.3.28 00093] after: 405672 +0 [7.3.28 00094] after: 405672 +0 [7.3.28 00095] after: 405672 +0 [7.3.28 00096] after: 405672 +0 [7.3.28 00097] after: 405672 +0 [7.3.28 00098] after: 405672 +0 [7.3.28 00099] after: 405672 +0 [7.3.28 00100] after: 405672 +0 [7.3.28 00101] after: 405672 +0 [7.3.28 00102] end: 405672 +0 1 +832 1 2 +1016 1 3-8 6 +0 6 9 +320 1 10-16 7 +0 13 17 +640 1 18-32 15 +0 28 33 +1280 1 34-64 31 +0 59 65 +5632 1
Process exited with code 137.

preferences:
43.74 ms | 832 KiB | 4 Q