cURL的内存溢出 leaks memory

leaks memory

http://*.com/questions/26690026/php-curl-loop-leaking-memory

up vote2down vote

Stories from the internet indicate that curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) is broken in for some PHP/cURL versions:

  • #13225 Memmory leak in curl

  • #40831 cURL extension doesnt clear buffer for reused handle

  • PHP script memory leak issue

  • PHP cURL, memory leak when using CURLOPT_RETURNTRANSFER

You can also find stories for DOM:

  • DOMDocument PHP Memory Leak

  • PHP/DOMDocument: unset() does not release resources

  • DOMDocument / Xpath leaking memory during long command line process - any way to deconstruct this class

Create a minimal test case which spots the cause of the leak. I.e. remove the unrelated package (DOM or cURL) from the code.

Then reproduce it with the latest PHP version. If it's still causing the leak, file a bug report else use that PHP version.


在php的es第三方扩展库中使用cURL进行request请求是,作者舍弃了原有的opt输出,启用OB输出

// cURL opt returntransfer leaks memory, therefore OB instead.
ob_start();
curl_exec($conn);
$responseString = ob_get_clean();