私は、多くのファイル(最大5mio。)の小さなファイル(9KB)を読みなければなりません。現在のところ、それらはすべて1つのディレクトリにあります。私はこれが二次的な時間かn^2のログnを見上げるのを恐れている、これは正しいのだろうか?これは重要ですか(参照は実際の読書よりも時間がかかりますか?)ファイルがOSによってキャッシュされるときの実行時間の漸近的な振る舞いに違いはありますか?1つのディレクトリから多数の小さなファイルを読み取るのに問題がありますか?
ファイルを読み込むためにC++ストリームを使用します。現時点では、Windows 7をNTFSで使用していますが、後でLinuxクラスタ上でプログラムを実行します(ファイルシステムが不明)。
メモリマップドI/Oを使用します。私のテストに基づいて、これはあなたが作ることができる単一の最大のファイルI/Oパフォーマンスの改善です。 –
1つのディレクトリの制限を変更できますか?いくつかの有益な情報がここにあります:http://stackoverflow.com/questions/8238860/maximum-number-of-files-folders-on-linux – VPfB