我正在瀏覽器中運行php腳本。消耗超過600MB字節後,php腳本消失。 httpd使用100%cpu。日誌文件中沒有錯誤。我使用xampp和php 5.4。爲了簡化問題,我測試了以下腳本:php腳本hungs消耗大量內存後
<?php
set_time_limit(0);
ini_set('memory_limit', '1800M');
$b="";
for($i=0;$i<630000000;$i++)
{
$b.='a';
}
echo "completed!";
?>
腳本失敗,出現錯誤: 致命錯誤:內存(分配320077824)(試圖分配319815657個字節) 我的系統有1.5G左右內存可用。這怎麼會發生?
究竟您嘗試使用此代碼? – Umair
除了在內存中創建一個630MB的字符串(這需要至少兩倍,因爲它是通過串聯構建的)有什麼意義?更好地嘗試和保持內存使用率低,因爲在新的內存塊分配有大量開銷 –
要檢查爲什麼PHP不能從可用物理內存分配內存 – peter