【发布时间】:2016-03-09 15:43:28
【问题描述】:
我已经读过好几遍了,为了调用垃圾收集器并真正清理变量使用的 RAM,你必须分配一个新值(例如 NULL)而不是简单地 unset() 它。
然而,这段代码显示分配给数组 $a 的内存在分配 NULL 后没有被清理。
function build_array()
{
for ($i=0;$i<10000;$i++){
$a[$i]=$i;
}
$i=null;
return $a;
}
echo '<p>'.memory_get_usage(true);
$a = build_array();
echo '<p>'.memory_get_usage(true);
$a = null;
echo '<p>'.memory_get_usage(true);
我得到的输出是:
262144
1835008
786432
所以部分内存被清理了,但不是所有的内存。如何彻底清理 RAM?
【问题讨论】:
-
分配
NULL变量与使用unset()不同。 -
这正是我所说的,我使用了这个分配,因为 unset 还不够,但它没有按预期工作。
-
自己加unset()试试,不影响结果...
标签: php arrays variables null ram