PHP释放包含文件的内存

标签 php memory include

我可以释放包含文件生成的内存吗,这是我的代码

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/

相关文章:

php - 带默认值的 Laravel 模型方法

php - .htaccess 404 页面未找到

php - .htaccess,双重重定向评估 uri

Java:读取相对较大的 txt 文件并存储其数据的最有效方法是什么?

C++运算符的多重定义>>

c++ - Visual Studio 2015 c++ 无法打开包含文件错误

PHP - 我怎样才能重写这一部分以使其更专业?

C 动态内存分配和 sizeof()

c++ - 我不明白我遇到的 valgrind 错误

twitter-bootstrap - 如何在 Wordpress 插件开发中包含 Bootstrap ?