私はブラウザでPHPスクリプトを実行しています。 phpスクリプトは、600MBを超えるバイトを消費した後にハングします。 httpdは100%cpuを使用します。ログファイルにはエラーは表示されません。私はPHP 5.4でxamppを使用しています。問題を単純化するために、私は次のスクリプトをテストした:大量のメモリを消費した後にPHPスクリプトがハングアップする
<?php
set_time_limit(0);
ini_set('memory_limit', '1800M');
$b="";
for($i=0;$i<630000000;$i++)
{
$b.='a';
}
echo "completed!";
?>
スクリプトがエラーで失敗します。 致命的なエラー:メモリ不足(320077824を割り当てられた)私のシステムは、1.5G程度あり (319815657バイトを割り当てしようとしました)利用可能なメモリ。これはどうしてできますか?
あなたは、このコードをしようとしている地球上のどのような? – Umair
630MBの文字列をメモリに作成するだけでなく(連結によって構築されるため、少なくとも2倍のメモリが必要です)、何がポイントですか?新しいメモリブロックの割り当てに大きなオーバーヘッドがあるため、メモリ使用量を低く抑えようとする方がはるかに良い –
phpが利用可能な物理メモリからメモリを割り当てることができない理由を確認するには – peter