Tôi gặp sự cố với sự cố rò rỉ bộ nhớ trong khi xuất một số lượng lớn tệp từ mảng đối tượng. đang Giản trông như thế này:PHP: Mảng đối tượng và rò rỉ bộ nhớ
class Test_Class
{
private $a = null;
public function __construct($a = null)
{
$this->a = $a;
}
public function __destruct()
{
unset($this->a);
}
}
print 'Memory before: '.memory_get_usage(1).' <br>'; // 262 144
$a = [];
for ($i=0; $i<600000; $i++)
$a[] = new Test_Class($i);
print 'Memory after create: '.memory_get_usage(1).' <br>'; // 129 761 280
for($i=0; $i < count($a); $i++)
unset($a[$i]);
unset($a);
print 'Memory after: '.memory_get_usage(1).' <br>'; // 35 389 440
tại một trong những lần lặp tiếp theo bộ nhớ vẫn kết thúc. Bất kỳ ý tưởng nào về cách giải phóng bộ nhớ bị chiếm đóng?
P.S. Tôi thử unset()/assignment null và gc_collect_cycles(), không có phương thức nào cho phép tôi giải phóng bộ nhớ bị chiếm bởi mảng đối tượng
có thể trùng lặp của [Cách tốt nhất để tiêu diệt đối tượng PHP?] (Http://stackoverflow.com/questions/8798443/best-way-to-destroy-php-object) – FrankerZ