2
我写了大量的数据,但在功能内的时间块处理一些PHP脚本。有点像这样:是释放内存当PHP函数结束
function part1(){
$data = getLargeArray();
$evenBigger = array();
foreach($data as $piece){
$evenBigger[$piece['part1']][$piece['part2']][] = ohGodMoreData();
}
//...manipulate $evenBigger more and more
return true;
}
part1();
part2();
//...etc
我关心我的函数的内存使用情况。并不是说它们非常麻烦,但我担心如果记忆没有被释放,它可能是。我知道PHP在每个脚本的末尾释放所有的内存,但我也不想运行4或5个不同的脚本。
当我移动到part2();
是part1();
释放的内存?
我是否应该手动取消占用太多空间的变量,如$data
和$evenBigger
,或者相信PHP会在函数结束时为我执行此操作?
或者:
- 有没有更好的方法来放弃那段记忆?
-Any的方式来测试这样的事情?
-Any技巧更好地管理资源?
memory_get_usage()使用它,并且你可以回答你自己的问题 – 2014-03-03 22:14:44
内存不是“释放”的,但是变量所使用的内存只在函数的范围内当函数返回或退出时,为'垃圾收集';'垃圾收集'会在有空闲时钟周期或两个时候释放内存......通常这会很快发生。 –
您可以手动'unset '函数内的变量,但是这只能使它们可用于'垃圾收集' –