2

数百、場合によっては数千のファイルの特定のオフセットから読み取っています。その特定の時点で特定のオフセットから特定のデータのみが必要なので、後で使用するためにファイル ハンドルを開いたままにしておくか、必要な部分を別のファイルに書き込むことができます。

新しい一時ファイルのディスクに大量の書き込みを行うのではなく、これらすべてのファイル ハンドルを開いたままにしておくことは、2 つの悪のうち小さいほうだと考えました。非常に多くのファイルハンドルを開いていることの効率が心配でした。

通常、私はファイルを開き、オフセットを探し、いくつかのデータを読み取り、5 秒後に別のオフセットで同じことを行い、2 分の時間枠内で数千のファイルに対してこれらすべてを行います。

それは問題になるでしょうか?

フォローアップ: 本当に、私は、これらの何千ものファイル ハンドルを開いたままにしておくのと、常に閉じて、すぐに必要になったときに再度開くのと、どちらが良いかを尋ねています.

4

2 に答える 2

4

一部のシステムでは、1 つのプロセスが同時に開くことができるファイル記述子の数が制限されている場合があります。1024 は一般的なデフォルトであるため、一度に「数千」のファイルを開く必要がある場合は、移植性を重視して、開いているファイル記述子のより小さなプールを使用するようにアプリケーションを設計することをお勧めします。

于 2010-08-10T06:18:25.833 に答える
3

でご覧になることをお勧めしStorage.pyますBitTorrent。これには、ファイル ハンドルのプールの実装が含まれます。

于 2010-08-10T09:06:01.157 に答える