3v4l.org

run code in 300+ PHP versions simultaneously
<?php $start = microtime(true); function bytesToSize($bytes, $precision = 2) { $symbols = array('B', 'Kb', 'Mb', 'Gb', 'Tb', 'Pb', 'Eb', 'Zb', 'Yb'); $exp = (int)floor(log($bytes) / log(1024)); return sprintf('%.'. $precision .'f '. $symbols[$exp], $bytes / pow(1024, floor($exp))); } function mem() { return bytesToSize(memory_get_usage(true)); } function test($msg, $test) { $t = microtime(true); $test($msg); echo $msg .': <b>'. sprintf('%.6f', microtime(true) - $t) .'</b>'. PHP_EOL; } $array = range(0, 30000); test('foreach', function ($msg) use ($array) { echo $msg . ' before loop mem: '. mem() .PHP_EOL; foreach ($array as $v) { $b = $v; } echo $msg . ' after loop mem: '. mem() .PHP_EOL; }); test('foreach ref', function ($msg) use ($array) { echo $msg . ' before loop mem: '. mem() .PHP_EOL; foreach ($array as &$v) { $b = $v; } unset($v); echo $msg . ' after loop mem: '. mem() .PHP_EOL; }); test('for', function ($msg) use ($array) { echo $msg . ' before loop mem: '. mem() .PHP_EOL; $so = count($array); for ($i = 0; $i < $so; ++$i) { $b = $array[$i]; } echo $msg . ' after loop mem: '. mem() .PHP_EOL; }); test('while each -> list', function ($msg) use ($array) { echo $msg . ' before loop mem: '. mem() .PHP_EOL; while (list($k, $v) = each($array)) { $b =$v; } echo $msg . ' after loop mem: '. mem() .PHP_EOL; }); echo 'Memory peak: ' . round(memory_get_peak_usage() / 1048576, 3) .PHP_EOL; echo sprintf('%.6f', microtime(true) - $start) .'</b>'. PHP_EOL;
Output for 7.2.6
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.000821</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.113605</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.000963</b> while each -> list before loop mem: 4.00 Mb Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /in/YoSZ7 on line 48 while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.010018</b> Memory peak: 3.074 0.126367</b>
Output for 7.2.5
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.001046</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.153270</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.001045</b> while each -> list before loop mem: 4.00 Mb Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /in/YoSZ7 on line 48 while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.010929</b> Memory peak: 3.074 0.167397</b>
Output for 7.2.4
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.000705</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.106004</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.000895</b> while each -> list before loop mem: 4.00 Mb Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /in/YoSZ7 on line 48 while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.007975</b> Memory peak: 3.074 0.116726</b>
Output for 7.2.3
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.000710</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.097127</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.000719</b> while each -> list before loop mem: 4.00 Mb Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /in/YoSZ7 on line 48 while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.007156</b> Memory peak: 3.074 0.106600</b>
Output for 7.2.2
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.000851</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.110815</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.000983</b> while each -> list before loop mem: 4.00 Mb Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /in/YoSZ7 on line 48 while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.012604</b> Memory peak: 3.074 0.126357</b>
Output for 7.2.1
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.000621</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.108901</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.000654</b> while each -> list before loop mem: 4.00 Mb Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /in/YoSZ7 on line 48 while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.006753</b> Memory peak: 3.074 0.117857</b>
Output for 7.2.0
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.000754</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.101330</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.000786</b> while each -> list before loop mem: 4.00 Mb Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /in/YoSZ7 on line 48 while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.007584</b> Memory peak: 3.074 0.111623</b>
Output for 7.1.17
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.000680</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.086816</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.000787</b> while each -> list before loop mem: 4.00 Mb while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.008594</b> Memory peak: 3.039 0.097796</b>
Output for 7.1.16
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.000710</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.082470</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.000728</b> while each -> list before loop mem: 4.00 Mb while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.006579</b> Memory peak: 3.039 0.091614</b>
Output for 7.1.15
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.000723</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.095380</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.000734</b> while each -> list before loop mem: 4.00 Mb while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.007266</b> Memory peak: 3.039 0.105270</b>
Output for 7.1.14
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.000998</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.079089</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.000766</b> while each -> list before loop mem: 4.00 Mb while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.006503</b> Memory peak: 3.039 0.088627</b>
Output for 7.1.13
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.001224</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.102953</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.001021</b> while each -> list before loop mem: 4.00 Mb while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.010335</b> Memory peak: 3.039 0.116679</b>
Output for 7.1.12
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.000821</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.113214</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.001400</b> while each -> list before loop mem: 4.00 Mb while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.007593</b> Memory peak: 3.039 0.124380</b>
Output for 7.1.11
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.000660</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.079471</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.000727</b> while each -> list before loop mem: 4.00 Mb while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.006675</b> Memory peak: 3.039 0.088388</b>
Output for 7.1.10
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.000704</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.084844</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.000748</b> while each -> list before loop mem: 4.00 Mb while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.006993</b> Memory peak: 3.039 0.094460</b>
Output for 7.1.9
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.001028</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.133892</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.000933</b> while each -> list before loop mem: 4.00 Mb while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.009975</b> Memory peak: 3.039 0.146882</b>
Output for 7.1.8
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.000996</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.100368</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.000940</b> while each -> list before loop mem: 4.00 Mb while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.007392</b> Memory peak: 3.039 0.111120</b>
Output for 7.1.7
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.000670</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.137583</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.001012</b> while each -> list before loop mem: 4.00 Mb while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.010074</b> Memory peak: 3.039 0.150597</b>
Output for 7.1.6
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.000947</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.115675</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.000736</b> while each -> list before loop mem: 4.00 Mb while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.006892</b> Memory peak: 3.041 0.125750</b>
Output for 7.1.5
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.000629</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.109618</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.000713</b> while each -> list before loop mem: 4.00 Mb while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.006815</b> Memory peak: 3.041 0.118664</b>
Output for 7.1.4
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.000667</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.086115</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.000706</b> while each -> list before loop mem: 4.00 Mb while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.006325</b> Memory peak: 3.041 0.094619</b>
Output for 7.1.3
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.000819</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.089316</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.000686</b> while each -> list before loop mem: 4.00 Mb while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.006579</b> Memory peak: 3.041 0.098432</b>
Output for 7.1.2
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.000658</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.105937</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.000677</b> while each -> list before loop mem: 4.00 Mb while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.006583</b> Memory peak: 3.041 0.114755</b>
Output for 7.1.1
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.000723</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.092377</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.000690</b> while each -> list before loop mem: 4.00 Mb while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.006503</b> Memory peak: 3.039 0.101093</b>
Output for 7.1.0
foreach before loop mem: 2.00 Mb foreach after loop mem: 2.00 Mb foreach: <b>0.000792</b> foreach ref before loop mem: 2.00 Mb foreach ref after loop mem: 4.00 Mb foreach ref: <b>0.111598</b> for before loop mem: 4.00 Mb for after loop mem: 4.00 Mb for: <b>0.000817</b> while each -> list before loop mem: 4.00 Mb while each -> list after loop mem: 4.00 Mb while each -> list: <b>0.007181</b> Memory peak: 3.039 0.121616</b>

preferences:
71.07 ms | 402 KiB | 30 Q