千里丨烟波 2019-08-14 09:20 采纳率: 50%
浏览 888
已采纳

PHP内存溢出报错,修改limit后无效,但物理内存实际够用为什么?

情景是这样,用的PHP 5.5 + apche2.4 ,使用json_decode()函数依次拆分四个160MB左右的json数据文件,不管我是用逐行读取文件还是用json_decode(),基本在运行一会之后就报内存溢出的错误。
Fatal error: Out of memory (allocated 962592768) (tried to allocate 24 bytes) in D:phpstudyPHPTutorialWWWlyqxApplicationAdminModelTemModel.class.php on line 66
我首先就去php.ini里修改了_memory_limit = 4000M ,够大了吧,服务器是8G的物理内存,已用为2.8G,运行我程序的时候最多最多已用空间都没超过4GB,而且我特意从phpinfo里看到了memory__limit = 4000M,这能证明修改生效对吧。然而依然会经常报内存溢出,我已经快疯了,求指点!!**

另外有一个情况,就是如果我连续运行这四个拆分程序,那么到第三个的时候才会提示内存不足,如果我重启apache单独运行他们,那么每一个都不会导致内存溢出。我在程序循环中和循环外几乎把所有定义过的变量都unset()了,尽管如此确实还是能看到内存占用在不断上涨,可尽管如此距离我定义的可调用内存极限值还差很多呢啊?

  • 写回答

4条回答 默认 最新

  • 千里丨烟波 2019-08-15 15:59
    关注

    我的问题解决了!我用的phpstudy集成环境,php5.58+apache的服务器,导致我apache内存越来越多的原因是这个整合包里的版本有BUG!换成php5.4后apahce 的内存整理机制就正常了!!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料