사용자가 무엇을 좋아하는지 추측하는 기능이 있습니다. 사용자는 그룹 변경을 클릭하여 추천 콘텐츠를 새로 고칠 수 있습니다.
먼저 데이터베이스를 쿼리하여 처음 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을 사용한 후 정렬해야 합니다.
설정을 해제하면 키 값만 삭제되고 키는 유지됩니다.
개선된 글쓰기는 다음과 같습니다.
$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배 증가했습니다.