PHP---变量销毁,释放内存

最近在做一些项目,处理大数据,例如:导入,导出Excel文件,每次都要导入/导出几万个,占用内存高,很多时间导入\导出不成功,主要原因:导入,导出还需要经过大量的数据处理,内存很高,所以需要考虑主动销毁变量,释放内存。

下面仅测试变量销毁,释放内存:

$m0 = memory_get_usage(); echo "原始内存:{$m0}<br>";
$s = str_repeat('1',255);
$m1 = memory_get_usage();
echo "加变量后内存:{$m1},变量内存:".($m1-$m0)."B<br>";
unset($s); // 删除变量
$m2 = memory_get_usage(); echo "删除变量后内存:{$m2}<br>";

效果:

原始内存:405208
加变量后内存:405528,变量内存:320B
删除变量后内存:405208

测试:100000条数据

$m0 = memory_get_usage(); echo "原始内存:{$m0}<br>";
$list = [];
for($i=0;$i<100000;++$i){
    array_push($list,['id'=>$i,'title'=>'张三']);
}
$m1 = memory_get_usage();
echo "加变量后内存:{$m1},变量内存:".((($m1-$m0) / 1024) / 1024)."M<br>";
unset($list); // 删除变量
$m2 = memory_get_usage(); echo "删除变量后内存:{$m2}<br>";

效果:

原始内存:405928
加变量后内存:44297488,变量内存:41.858253479004M
删除变量后内存:405928

我们可以查看一下自己的PHP程序所允许的最大内存:php.ini

memory_limit = 256M

大数据,通过优化确实能够降低内存。

参考:https://www.cnblogs.com/zhangqie/p/8397400.html

打完收工!

posted @ 2022-09-02 13:52  帅到要去报警  阅读(560)  评论(0编辑  收藏  举报