我可以释放包含文件生成的内存吗,这是我的代码
a.php
<?
echo memory_get_usage();
include_once "b.php";
echo memory_get_usage();
$n = new obj();
echo memory_get_usage();
?>
b.php
<?
class obj {
protected $_obj = array{
....
}
function ....
}
?>
我查了一下,我包含了b.php之后,内存占用会增加,比新建一个对象要高。结果如下
348832 496824 497072
那么,如何释放包含文件的内存呢?
最佳答案
我认为 PHP 不能取消包含(我的意思是,释放包含文件所占用的内存空间),因为文件的内容稍后可能会被使用。这是 PHP 创作者的设计选择。
在你的 PHP 脚本完成后,它会释放消耗的内存,不要太担心它,除非它真的产生太多开销并且你有高流量负载。
如果有(假设是一个巨大的)对象来自您想要立即解除分配的包含文件,请使用 unset($obj)
。它会帮助一些。您应该阅读有关 PHP 垃圾收集策略的更多信息以进行微调。
关于PHP释放包含文件的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6008389/