- flush: documentation ( source)
- memory_get_usage: documentation ( source)
- gc_enable: documentation ( source)
- range: documentation ( source)
<?php
class Collection extends ArrayObject {
protected $iterator;
public function getIterator() {
// Well, this is a heavy object to make, let's memoize it
if (!isset($this->iterator)) {
$this->iterator = new ArrayIterator($this);
}
return $this->iterator;
}
}
gc_enable();
foreach (range(1, 50000) as $i) {
$collection = new Collection(array( 'foo', 'bar' ));
foreach ($collection as $item) {
}
echo $i . ': ' . memory_get_usage() . "\n";
flush();
unset($collection);
}
echo "done\n";