php页面结尾都需要unset变量来释放内存吗

yzxlyl 2018-01-13 04:37:22
php页面结尾都需要unset变量来释放内存吗?还是执行完了自动就会释放内存,不需要主动unset?经常遇到out of memory错误,服务器内存还有很多,memory_limit也已经设很大512M以上(我觉得单个会员远用不到512M)
...全文
811 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
老虎爱代码 2018-01-15
  • 打赏
  • 举报
回复
一般来说是不要做unset,但是当你做大批量操作的时候还是需要注意变量的操作,比如我以前做csv数据导入的项目,一般都有几十M的数据,这种时候你需要注意变量的使用了,不注意的话会把内存爆掉的,你这种情况看看是不是代码里面有问题,有死循环之类的导致memory_limit超限了
xuzuning 2018-01-14
  • 打赏
  • 举报
回复
另外,2G对于 16G 不就是 12.5% 吗?
xuzuning 2018-01-14
  • 打赏
  • 举报
回复
你的 php 是 64 位的?那就要看的程序是否写的有问题了 如果不是,之多只有近地址的 2G 可用,这片区域由于操作系统频繁光顾,内存破碎,找不到合适的片段是很正常的
yzxlyl 2018-01-14
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
没有必要 但在中途可能需要 memory_limit 表示的是最大允许使用的内存,memory_get_usage 函数返回正在使用的内存数量 最大允许使用的内存 并不表示一定能使用得到,实际能是有得到的内存由操作系统调度决定 每当 php 需要扩大内存使用量时,会想操作系统发出请求,操作系统会根据请求的内存数量,找一块连续的闲置内存片段交给 php 使用。如果找不到,php 就会报 out of memory 错误
服务器16G内存,内存使用10%几,就经常出现out of memory,这要太奇怪了吧,这么多空闲内存就找不到几十几百k的连续内存块?我测试过了,一个php页面也就是用这么多
  • 打赏
  • 举报
回复
建议使用,不使用也没事,电脑会自己释放的
xuzuning 2018-01-13
  • 打赏
  • 举报
回复
没有必要 但在中途可能需要 memory_limit 表示的是最大允许使用的内存,memory_get_usage 函数返回正在使用的内存数量 最大允许使用的内存 并不表示一定能使用得到,实际能是有得到的内存由操作系统调度决定 每当 php 需要扩大内存使用量时,会想操作系统发出请求,操作系统会根据请求的内存数量,找一块连续的闲置内存片段交给 php 使用。如果找不到,php 就会报 out of memory 错误

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧