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 '函數內的變量,但是這隻能使它們可用於'垃圾收集' –