ホームページ >バックエンド開発 >PHPチュートリアル >専門家がコードの一部を確認するのを手伝ってくれます。メモリが使い果たされているのはなぜですか?
$i = -1;while( $i++ < 495000000 ) { $rand_uid = rand(100000000,105000000); $rand_fuid = rand(100000000,999999999); $tab_name = get_hash_table('friends',$rand_uid); $up_array = array( 'uid' => $rand_uid, 'fuid' => $rand_fuid ); insert_table($tab_name, $up_array,1);}
これは以前投稿したものです、ポイントを受け取りに来てください!
http://bbs.csdn.net/topics/390121151
おそらくそうではありませんが、ハード ディスクの空き容量が不足している場合は、何とも言えません
少なくとも、挿入が成功したかどうかは insert_table で判断する必要があります
そうではありませんget_hash_table のアルゴリズムは知っていますが、 $rand_uid のデータ スパンは 5000000 です
メモリを解放するためにバッチで実行してください
おそらくそうではありませんが、ハードディスクの容量が不足している場合は、何とも言えません
少なくとも、insert_table は挿入かどうかを判断する必要がありますは成功しました
get_hash_table のアルゴリズムは分かりませんが、$rand_uid のデータスパンは 5000000 です
ご返信ありがとうございます!
ディスク容量は十分に大きく、IO は正常です。
バッチで実行してメモリを解放する
重要なのは、どの部分がメモリを消費しているかわからないということです。
メモリを解放するには、memory_get_usage 関数を使用します
バッチで実行してメモリを解放します
重要なのは、どの部分がメモリを消費しているかわからないということです。
個人的には、このコードは基本的に無限ループと同じだと思います。つまり、実行を終了し、ループ本体で SLEEP を確認します
get_hash_tableh と insert_table の両方を投稿した方がよいでしょう。
ディスク IO を確認しました。これが原因であるはずです