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