Есть такой код:
<?
class T_Class {
private $a = null;
public function __construct($a = null) {
$this->a = $a;
}
public function __destruct() {
unset($this->a);
}
}
print 'Before: '.(memory_get_usage(1)/1024); echo "\n";
$a = [];
for ($i=0; $i<1000000; $i++)
$a[] = new T_Class($i);
print 'After create: '.(memory_get_usage(1)/1024);echo "\n";
for($i=0; $i < count($a); $i++)
unset($a[$i]);
unset($a);
print 'Remove: '.(memory_get_usage(1)/1024);echo "\n";
Результат его работы такой:
Before: 2048
After create: 100352
Remove: 65536
Почему не освобождается вся использованная память?