我正在编写一些处理大量数据的 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在函数结束时会为我完成这项工作?或者:
-有更好的方法释放内存吗?
-有任何方法测试这样的事情吗?
-有更好的资源管理技巧吗?
unset
变量,但这只是使它们可供垃圾回收
使用。 - Mark Baker