私は、ポインターの配列をループし、各項目についてそのデータを (MySQL データベースまたはフラット ファイルから) 取り込む必要がある PHP 関数を作成しています。何千回もの繰り返しが発生する可能性があるため、これを最適化するアイデアはありますか?
私の最初のアイデアは、私が作業しているキャッシュされたデータの静的な配列を持つことでした。変更すると、そのキャッシュされた配列が変更され、最後にディスクにフラッシュできます。ただし、1000 を超えるアイテムのループでは、配列に約 30 しか保持しない場合、これは役に立ちません。各項目はそれほど大きくありませんが、メモリ内に 1000 個以上あると大きすぎるため、ディスク ストレージが必要になります。
データは、シリアル化されたオブジェクトを gzip 圧縮しただけです。現在、私はデータベースを使用してデータを保存していますが、おそらくフラットファイルの方が高速になると考えています(同時実行の問題は気にせず、解析する必要はなく、解凍してシリアル化を解除するだけです)。一度に 5 つのアイテムを取得して (DB 接続を削減するため)、それらをこのキャッシュに格納するカスタム イテレータが既にあります。しかし繰り返しになりますが、何千回も繰り返す必要がある場合に 30 のキャッシュを使用しても、まったく役に立ちません。
基本的に、これらの多くのアイテムをすばやく反復処理する方法が必要です。