3v4l.org

run code in 300+ PHP versions simultaneously
<?php class IteratorWithFilter { public $generator; public function __construct(array $data) { $this->generator = new \ArrayIterator($data); } public function filter() { $this->generator = new \CallbackFilterIterator($this->generator, static function ($row) { return true; }); return $this; } } function createIterator() { $iter = new IteratorWithFilter([['a'], ['b']]); return $iter->filter(); } for ($i = 0; $i < 50 * 1000; $i++) { createIterator(); if (($i % 1000) === 0) { // gc_collect_cycles(); // explicit GC does not help... echo round(memory_get_usage() / (1024 * 1024), 3) . " MiB\n"; } }
Output for 7.3.0 - 7.3.22, 7.4.0 - 7.4.10
0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB 0.373 MiB
Output for 7.2.0 - 7.2.33
0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB 0.369 MiB

preferences:
98.43 ms | 402 KiB | 73 Q