2016-12-05 137 views
0

我用我的脚本这个API(https://api.ssactivewear.com/v2/products/):内存分配问题后,增加内存限制

ini_set('memory_limit', "300M"); 
$uri=$end_url.$method; 
$ch = curl_init($uri); 
$access_key=base64_encode($customer_number.':'.$api_key); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Basic ' . $access_key)); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER ,1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
$retrive_response = curl_exec($ch); 
curl_close($ch); 
return $retrive_response; 

脚本的几个时间执行后,我收到一个错误

Fatal error: Allowed memory size of 314572800 bytes exhausted (tried to allocate 161956814 bytes)

+0

您可以通过使用'echo ini_get(“memory_limit”)来检查内存限制是否实际增加了。看到相关的帖子http://stackoverflow.com/questions/5061917/ini-setmemory-limit-in-php-5-3-3-is-not-working-at-all 还要确保它在脚本的顶部,并记住增加只针对正在运行的脚本 –

回答

0

似乎你的脚本需要比300M更多的内存。尝试

ini_set('memory_limit', "600M"); 
+0

我已经将内存从166增加到了256,并且面临了问题。致命错误:允许内存大小268435456字节耗尽(试图分配161985171字节) –

+0

@NeerajMahajan加'echo memory_get_usage(); exit();'在'curl_exec'行之前。你会知道已经使用了多少内存。然后在脚本结尾尝试相同的内容,但不使用'curl_exec'。它可以帮助您确定脚本的哪一部分消耗所有内存。如果值很小,那么'curl_exec'需要更多的内存。一次又一次地增加它。 – rNix

+0

当添加'echo memory_get_usage();饮食'); '在curl_exec结果为3978256之前,curl_exec结果为'致命错误:内存不足(分配166199296)(试图分配161956783字节)' –