ユーザーの好みを推測する機能があり、クリックしてグループを変更すると、おすすめのコンテンツを更新できます。
まずデータベースにクエリを実行して最初の 1000 個のデータを取得し、次にランダムに 4 個を削除します。
プログラムを書き終えた後、プログラムの実行が非常に遅く、更新するたびに実行されるまでに長い時間がかかることがわかりました。
コードは以下の通りです:
$arr = range(1, 100000); $start = time(); for($i = 0; $i < 100; $i ++){ $key = mt_rand(0, 99999 - $i); $result[] = $arr[$key]; unset($arr[$key]); sort($arr); } $end = time(); echo $end - $start;
上記の書き方はunsetを使った後にsortする必要があります。
unset はキー値を削除するだけですが、キーは保持されます。
改善された書き込み方法は次のとおりです:
$arr = range(1, 100000); $start = time(); for($i = 0; $i < 100; $i ++){ $key = mt_rand(0, 99999 - $i); $result[] = array_splice($arr, $key, 1); } $end = time(); echo $end - $start;
効率が3〜4倍向上しました。