0

必要に応じてバイトを読み取るのではなく、ファイル全体を一度に読み取ることに利点/欠点はありますか? したがって、次の利点はありますか。

file_handle = open("somefile", rb)
file_contents = file_handle.read()
# do all the things using file_contents

に比べ:

file_handle = open("somefile", rb)
part1 = file_handle.read(10)
# do some stuff
part2 = file_handle.read(8)
# do some more stuff etc

背景: 私は Python で p-code (バイトコード) インタープリターを作成しています。最初は、必要に応じてファイルからバイトを読み取り、必要なアクションを実行する単純な実装を作成したところです。プログラムを見せていた友人は、代わりに、ファイル全体をメモリ (Python リスト?) に読み込み、メモリから処理して、多くの遅いディスク読み込みを回避します。テスト ファイルは現在 1KB 未満であり、おそらく最大で数 100KB になるため、オペレーティング システムとディスク コントローラ システムがファイルをキャッシュし、ファイルの小さなチャンクを繰り返し読み取ることによって引き起こされるパフォーマンスの問題を回避することを期待していました。

4

4 に答える 4

1

パフォーマンスをお探しの場合は、ジェネレーターを使用することをお勧めします。ファイルサイズが小さいため、メモリは大きな問題にはなりませんが、それでも良い習慣です。ディスクからファイルを何度も読み取ることは、スケーラブルなソリューションの明確なボトルネックです。

于 2013-10-14T14:24:53.350 に答える