使用curl_multi_exec獲取數據會導致巨大的內存使用量。我試着調試這個,這是內存使用開始上升的地方。使用curl_multi_exec獲取過多的內存使用量
do {
$mrc = curl_multi_exec($mh, $active);
var_dump("Curl exec ".memory_get_usage());
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active) {
var_dump("Check active ".memory_get_usage());
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
我在這裏取的網址是〜每個原始JSON格式的數據的3MB,有他們四個人,因此在理論上應採取〜12MB的內存,對不對?
string(17) "Curl exec 1697936"
string(20) "Check active 1697936"
string(20) "Check active 1947536"
string(20) "Check active 2373824"
string(20) "Check active 3012800"
string(20) "Check active 3852224"
string(20) "Check active 4966336"
string(20) "Check active 5801920"
string(20) "Check active 6850800"
string(20) "Check active 7882992"
PHP版本5.3.6
最後輸出的字符串顯示≈8MB已分配。這個值有什麼問題? – mudasobwa 2014-11-06 14:53:33