-1

情景是这样,用的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()了,尽管如此确实还是能看到内存占用在不断上涨,可尽管如此距离我定义的可调用内存极限值还差很多呢啊?

2019-08-14 提问

查看全部 5 个回答

0

已采纳

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

推荐答案

1

不要用apache或nginx这种http服务器,直接用cli去跑

推广链接