【发布时间】:2010-10-02 22:24:36
【问题描述】:
一个基本的虚拟类:
class foo
{
var $bar = 0;
function foo() {}
function boo() {}
}
echo memory_get_usage();
echo "\n";
$foo = new foo();
echo memory_get_usage();
echo "\n";
unset($foo);
echo memory_get_usage();
echo "\n";
$foo = null;
echo memory_get_usage();
echo "\n";
输出:
$ php test.php
353672
353792
353792
353792
现在,我知道 PHP 文档说在需要内存之前不会释放内存(达到上限)。然而,我把它写成一个小测试,因为我有一个更长的任务,使用一个更大的对象,以及该对象的许多实例。内存只会攀升,最终耗尽并停止执行。即使这些大对象确实占用了内存,因为我在完成每个(串行)之后销毁它们,它不应该耗尽内存(除非单个对象耗尽了整个内存空间,情况并非如此)。
想法?
【问题讨论】: