Perl readdir を使用してファイル リストを取得していますが、ディレクトリには 250,000 を超えるファイルが含まれているため、readdir の実行に長時間 (4 分以上) かかり、80MB を超える RAM を使用します。これは 5 分ごとに繰り返されるジョブであることを意図していたため、この遅延時間は許容できません。
詳細: 別のジョブが、スキャン中のディレクトリを (1 日に 1 回) 埋めます。この Perl スクリプトは、ファイルの処理を担当します。スクリプトの反復ごとにファイル数が指定されており、現在は実行ごとに 1000 です。Perl スクリプトは 5 分ごとに実行され、(該当する場合) 最大 1000 個のファイルを処理します。Perl が複雑なワークフローをトリガーするデータベースにデータをプッシュする際に、ダウン ストリーム処理を維持できるようにすることを目的としたファイル数の制限。
ディレクトリからファイル名を取得する別の方法はありますか?理想的には 1000 (変数で設定) に制限すると、このスクリプトの速度が大幅に向上しますか?