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
打完收工!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2019-09-02 css3特效插件wow.js