私は、文字列で始まるすべてのファイルを検出し、対応するファイルでいっぱいの配列を返しますが、特定のディレクトリに20000個のファイルがあるため遅くなり始めています。 私はこの機能を最適化する必要がありますが、私はどのように見えません。これは関数です:PHPの最適化機能
function DetectPrefix ($filePath, $prefix)
{
$dh = opendir($filePath);
while (false !== ($filename = readdir($dh)))
{
$posIni = strpos($filename, $prefix);
if ($posIni===0):
$files[] = $filename;
endif;
}
if (count($files)>0){
return $files;
} else {
return null;
}
}
これ以上何ができますか?
おかげ
どのようにそのディレクトリ構造を変更しますか?ファイル名の最初の文字に基づいてサブディレクトリを作成すると、関連するファイルをさらに早く見つけることができます。 bb * – sisve
グロブを探しているときに/ a/aa *を調べる必要はありませんが、KMは間違いありません。長期的には、ディレクトリ構造について何かする必要があります。 1つのディレクトリに多数のファイルがあると、多くの問題が発生する可能性があります。 – stefs
私はそのディレクトリにある膨大な数のファイルについて何もできません。古代のソフトウェア:それと一緒に生きなければならない;)すべての答えをありがとう! – RSilva