3v4l.org

run code in 500+ 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 7.3.0 - 7.3.28
test.php: php 7.3.0, phar-api 1.1.1 [7.3.0 00001] start: 395952 [7.3.0 00002] after: 396784 +832 [7.3.0 00003] after: 397800 +1016 [7.3.0 00004] after: 397800 +0 [7.3.0 00005] after: 397800 +0 [7.3.0 00006] after: 397800 +0 [7.3.0 00007] after: 397800 +0 [7.3.0 00008] after: 397800 +0 [7.3.0 00009] after: 397800 +0 [7.3.0 00010] after: 398120 +320 [7.3.0 00011] after: 398120 +0 [7.3.0 00012] after: 398120 +0 [7.3.0 00013] after: 398120 +0 [7.3.0 00014] after: 398120 +0 [7.3.0 00015] after: 398120 +0 [7.3.0 00016] after: 398120 +0 [7.3.0 00017] after: 398120 +0 [7.3.0 00018] after: 398760 +640 [7.3.0 00019] after: 398760 +0 [7.3.0 00020] after: 398760 +0 [7.3.0 00021] after: 398760 +0 [7.3.0 00022] after: 398760 +0 [7.3.0 00023] after: 398760 +0 [7.3.0 00024] after: 398760 +0 [7.3.0 00025] after: 398760 +0 [7.3.0 00026] after: 398760 +0 [7.3.0 00027] after: 398760 +0 [7.3.0 00028] after: 398760 +0 [7.3.0 00029] after: 398760 +0 [7.3.0 00030] after: 398760 +0 [7.3.0 00031] after: 398760 +0 [7.3.0 00032] after: 398760 +0 [7.3.0 00033] after: 398760 +0 [7.3.0 00034] after: 400040 +1280 [7.3.0 00035] after: 400040 +0 [7.3.0 00036] after: 400040 +0 [7.3.0 00037] after: 400040 +0 [7.3.0 00038] after: 400040 +0 [7.3.0 00039] after: 400040 +0 [7.3.0 00040] after: 400040 +0 [7.3.0 00041] after: 400040 +0 [7.3.0 00042] after: 400040 +0 [7.3.0 00043] after: 400040 +0 [7.3.0 00044] after: 400040 +0 [7.3.0 00045] after: 400040 +0 [7.3.0 00046] after: 400040 +0 [7.3.0 00047] after: 400040 +0 [7.3.0 00048] after: 400040 +0 [7.3.0 00049] after: 400040 +0 [7.3.0 00050] after: 400040 +0 [7.3.0 00051] after: 400040 +0 [7.3.0 00052] after: 400040 +0 [7.3.0 00053] after: 400040 +0 [7.3.0 00054] after: 400040 +0 [7.3.0 00055] after: 400040 +0 [7.3.0 00056] after: 400040 +0 [7.3.0 00057] after: 400040 +0 [7.3.0 00058] after: 400040 +0 [7.3.0 00059] after: 400040 +0 [7.3.0 00060] after: 400040 +0 [7.3.0 00061] after: 400040 +0 [7.3.0 00062] after: 400040 +0 [7.3.0 00063] after: 400040 +0 [7.3.0 00064] after: 400040 +0 [7.3.0 00065] after: 400040 +0 [7.3.0 00066] after: 405672 +5632 [7.3.0 00067] after: 405672 +0 [7.3.0 00068] after: 405672 +0 [7.3.0 00069] after: 405672 +0 [7.3.0 00070] after: 405672 +0 [7.3.0 00071] after: 405672 +0 [7.3.0 00072] after: 405672 +0 [7.3.0 00073] after: 405672 +0 [7.3.0 00074] after: 405672 +0 [7.3.0 00075] after: 405672 +0 [7.3.0 00076] after: 405672 +0 [7.3.0 00077] after: 405672 +0 [7.3.0 00078] after: 405672 +0 [7.3.0 00079] after: 405672 +0 [7.3.0 00080] after: 405672 +0 [7.3.0 00081] after: 405672 +0 [7.3.0 00082] after: 405672 +0 [7.3.0 00083] after: 405672 +0 [7.3.0 00084] after: 405672 +0 [7.3.0 00085] after: 405672 +0 [7.3.0 00086] after: 405672 +0 [7.3.0 00087] after: 405672 +0 [7.3.0 00088] after: 405672 +0 [7.3.0 00089] after: 405672 +0 [7.3.0 00090] after: 405672 +0 [7.3.0 00091] after: 405672 +0 [7.3.0 00092] after: 405672 +0 [7.3.0 00093] after: 405672 +0 [7.3.0 00094] after: 405672 +0 [7.3.0 00095] after: 405672 +0 [7.3.0 00096] after: 405672 +0 [7.3.0 00097] after: 405672 +0 [7.3.0 00098] after: 405672 +0 [7.3.0 00099] after: 405672 +0 [7.3.0 00100] after: 405672 +0 [7.3.0 00101] after: 405672 +0 [7.3.0 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.
Output for 7.4.0 - 7.4.16
test.php: php 7.4.0, phar-api 1.1.1 [7.4.0 00001] start: 396016 [7.4.0 00002] after: 396872 +856 [7.4.0 00003] after: 397888 +1016 [7.4.0 00004] after: 397888 +0 [7.4.0 00005] after: 397888 +0 [7.4.0 00006] after: 397888 +0 [7.4.0 00007] after: 397888 +0 [7.4.0 00008] after: 397888 +0 [7.4.0 00009] after: 397888 +0 [7.4.0 00010] after: 398208 +320 [7.4.0 00011] after: 398208 +0 [7.4.0 00012] after: 398208 +0 [7.4.0 00013] after: 398208 +0 [7.4.0 00014] after: 398208 +0 [7.4.0 00015] after: 398208 +0 [7.4.0 00016] after: 398208 +0 [7.4.0 00017] after: 398208 +0 [7.4.0 00018] after: 398848 +640 [7.4.0 00019] after: 398848 +0 [7.4.0 00020] after: 398848 +0 [7.4.0 00021] after: 398848 +0 [7.4.0 00022] after: 398848 +0 [7.4.0 00023] after: 398848 +0 [7.4.0 00024] after: 398848 +0 [7.4.0 00025] after: 398848 +0 [7.4.0 00026] after: 398848 +0 [7.4.0 00027] after: 398848 +0 [7.4.0 00028] after: 398848 +0 [7.4.0 00029] after: 398848 +0 [7.4.0 00030] after: 398848 +0 [7.4.0 00031] after: 398848 +0 [7.4.0 00032] after: 398848 +0 [7.4.0 00033] after: 398848 +0 [7.4.0 00034] after: 400128 +1280 [7.4.0 00035] after: 400128 +0 [7.4.0 00036] after: 400128 +0 [7.4.0 00037] after: 400128 +0 [7.4.0 00038] after: 400128 +0 [7.4.0 00039] after: 400128 +0 [7.4.0 00040] after: 400128 +0 [7.4.0 00041] after: 400128 +0 [7.4.0 00042] after: 400128 +0 [7.4.0 00043] after: 400128 +0 [7.4.0 00044] after: 400128 +0 [7.4.0 00045] after: 400128 +0 [7.4.0 00046] after: 400128 +0 [7.4.0 00047] after: 400128 +0 [7.4.0 00048] after: 400128 +0 [7.4.0 00049] after: 400128 +0 [7.4.0 00050] after: 400128 +0 [7.4.0 00051] after: 400128 +0 [7.4.0 00052] after: 400128 +0 [7.4.0 00053] after: 400128 +0 [7.4.0 00054] after: 400128 +0 [7.4.0 00055] after: 400128 +0 [7.4.0 00056] after: 400128 +0 [7.4.0 00057] after: 400128 +0 [7.4.0 00058] after: 400128 +0 [7.4.0 00059] after: 400128 +0 [7.4.0 00060] after: 400128 +0 [7.4.0 00061] after: 400128 +0 [7.4.0 00062] after: 400128 +0 [7.4.0 00063] after: 400128 +0 [7.4.0 00064] after: 400128 +0 [7.4.0 00065] after: 400128 +0 [7.4.0 00066] after: 405760 +5632 [7.4.0 00067] after: 405760 +0 [7.4.0 00068] after: 405760 +0 [7.4.0 00069] after: 405760 +0 [7.4.0 00070] after: 405760 +0 [7.4.0 00071] after: 405760 +0 [7.4.0 00072] after: 405760 +0 [7.4.0 00073] after: 405760 +0 [7.4.0 00074] after: 405760 +0 [7.4.0 00075] after: 405760 +0 [7.4.0 00076] after: 405760 +0 [7.4.0 00077] after: 405760 +0 [7.4.0 00078] after: 405760 +0 [7.4.0 00079] after: 405760 +0 [7.4.0 00080] after: 405760 +0 [7.4.0 00081] after: 405760 +0 [7.4.0 00082] after: 405760 +0 [7.4.0 00083] after: 405760 +0 [7.4.0 00084] after: 405760 +0 [7.4.0 00085] after: 405760 +0 [7.4.0 00086] after: 405760 +0 [7.4.0 00087] after: 405760 +0 [7.4.0 00088] after: 405760 +0 [7.4.0 00089] after: 405760 +0 [7.4.0 00090] after: 405760 +0 [7.4.0 00091] after: 405760 +0 [7.4.0 00092] after: 405760 +0 [7.4.0 00093] after: 405760 +0 [7.4.0 00094] after: 405760 +0 [7.4.0 00095] after: 405760 +0 [7.4.0 00096] after: 405760 +0 [7.4.0 00097] after: 405760 +0 [7.4.0 00098] after: 405760 +0 [7.4.0 00099] after: 405760 +0 [7.4.0 00100] after: 405760 +0 [7.4.0 00101] after: 405760 +0 [7.4.0 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 8.0.0 - 8.0.3
test.php: php 8.0.0, phar-api 1.1.1 [8.0.0 00001] start: 395736 [8.0.0 00002] after: 396592 +856 [8.0.0 00003] after: 397608 +1016 [8.0.0 00004] after: 397608 +0 [8.0.0 00005] after: 397608 +0 [8.0.0 00006] after: 397608 +0 [8.0.0 00007] after: 397608 +0 [8.0.0 00008] after: 397608 +0 [8.0.0 00009] after: 397608 +0 [8.0.0 00010] after: 397928 +320 [8.0.0 00011] after: 397928 +0 [8.0.0 00012] after: 397928 +0 [8.0.0 00013] after: 397928 +0 [8.0.0 00014] after: 397928 +0 [8.0.0 00015] after: 397928 +0 [8.0.0 00016] after: 397928 +0 [8.0.0 00017] after: 397928 +0 [8.0.0 00018] after: 398568 +640 [8.0.0 00019] after: 398568 +0 [8.0.0 00020] after: 398568 +0 [8.0.0 00021] after: 398568 +0 [8.0.0 00022] after: 398568 +0 [8.0.0 00023] after: 398568 +0 [8.0.0 00024] after: 398568 +0 [8.0.0 00025] after: 398568 +0 [8.0.0 00026] after: 398568 +0 [8.0.0 00027] after: 398568 +0 [8.0.0 00028] after: 398568 +0 [8.0.0 00029] after: 398568 +0 [8.0.0 00030] after: 398568 +0 [8.0.0 00031] after: 398568 +0 [8.0.0 00032] after: 398568 +0 [8.0.0 00033] after: 398568 +0 [8.0.0 00034] after: 399848 +1280 [8.0.0 00035] after: 399848 +0 [8.0.0 00036] after: 399848 +0 [8.0.0 00037] after: 399848 +0 [8.0.0 00038] after: 399848 +0 [8.0.0 00039] after: 399848 +0 [8.0.0 00040] after: 399848 +0 [8.0.0 00041] after: 399848 +0 [8.0.0 00042] after: 399848 +0 [8.0.0 00043] after: 399848 +0 [8.0.0 00044] after: 399848 +0 [8.0.0 00045] after: 399848 +0 [8.0.0 00046] after: 399848 +0 [8.0.0 00047] after: 399848 +0 [8.0.0 00048] after: 399848 +0 [8.0.0 00049] after: 399848 +0 [8.0.0 00050] after: 399848 +0 [8.0.0 00051] after: 399848 +0 [8.0.0 00052] after: 399848 +0 [8.0.0 00053] after: 399848 +0 [8.0.0 00054] after: 399848 +0 [8.0.0 00055] after: 399848 +0 [8.0.0 00056] after: 399848 +0 [8.0.0 00057] after: 399848 +0 [8.0.0 00058] after: 399848 +0 [8.0.0 00059] after: 399848 +0 [8.0.0 00060] after: 399848 +0 [8.0.0 00061] after: 399848 +0 [8.0.0 00062] after: 399848 +0 [8.0.0 00063] after: 399848 +0 [8.0.0 00064] after: 399848 +0 [8.0.0 00065] after: 399848 +0 [8.0.0 00066] after: 405480 +5632 [8.0.0 00067] after: 405480 +0 [8.0.0 00068] after: 405480 +0 [8.0.0 00069] after: 405480 +0 [8.0.0 00070] after: 405480 +0 [8.0.0 00071] after: 405480 +0 [8.0.0 00072] after: 405480 +0 [8.0.0 00073] after: 405480 +0 [8.0.0 00074] after: 405480 +0 [8.0.0 00075] after: 405480 +0 [8.0.0 00076] after: 405480 +0 [8.0.0 00077] after: 405480 +0 [8.0.0 00078] after: 405480 +0 [8.0.0 00079] after: 405480 +0 [8.0.0 00080] after: 405480 +0 [8.0.0 00081] after: 405480 +0 [8.0.0 00082] after: 405480 +0 [8.0.0 00083] after: 405480 +0 [8.0.0 00084] after: 405480 +0 [8.0.0 00085] after: 405480 +0 [8.0.0 00086] after: 405480 +0 [8.0.0 00087] after: 405480 +0 [8.0.0 00088] after: 405480 +0 [8.0.0 00089] after: 405480 +0 [8.0.0 00090] after: 405480 +0 [8.0.0 00091] after: 405480 +0 [8.0.0 00092] after: 405480 +0 [8.0.0 00093] after: 405480 +0 [8.0.0 00094] after: 405480 +0 [8.0.0 00095] after: 405480 +0 [8.0.0 00096] after: 405480 +0 [8.0.0 00097] after: 405480 +0 [8.0.0 00098] after: 405480 +0 [8.0.0 00099] after: 405480 +0 [8.0.0 00100] after: 405480 +0 [8.0.0 00101] after: 405480 +0 [8.0.0 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.

preferences:
34.42 ms | 1170 KiB | 11 Q