3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Leak { static protected function &leaked(array &$array = null) { $array = array('one'); return $array; } public function toLeaked($array = null) { $array = static::leaked($array); return $array; } public function testLeak() { echo "memory before loop: " . memory_get_usage() . PHP_EOL; for ($i = 0; $i < 20000; $i++) { $leak = $this->toLeaked(); } gc_collect_cycles(); echo "memory after loop: " . memory_get_usage() . PHP_EOL; } } $leak = new Leak(); $leak->testLeak();
Output for 7.4.0
memory before loop: 389104 memory after loop: 389136
Output for 7.3.0 - 7.3.12
memory before loop: 389064 memory after loop: 389096
Output for 7.2.0 - 7.2.25
memory before loop: 385216 memory after loop: 385248
Output for 7.1.4 - 7.1.33
memory before loop: 348544 memory after loop: 348576
Output for 7.1.0 - 7.1.3
memory before loop: 348544 memory after loop: 828576
Output for 7.0.18 - 7.0.33
memory before loop: 348592 memory after loop: 349000
Output for 7.0.0 - 7.0.17
memory before loop: 348592 memory after loop: 8348624
Output for 5.6.0 - 5.6.40
memory before loop: 222824 memory after loop: 223288

preferences:
143.74 ms | 401 KiB | 154 Q