2

私は常にデータをRandomAccessFilerwするために使用しています。ファイルのサイズは5MBから200MBまでの範囲です。このファイルは循環バッファとして使用されます。

私の主な関心事は、読み取りと書き込みの前に常にシークすることです。

シーク後はどうなりますか?ファイルデータの一部はすぐにメモリにバッファリングされますか?シーク後も何かしますか?

RandomAccessFileそれがどのように機能するか、そしてさまざまな位置で読み取り/書き込みを使用することのパフォーマンスをどのように改善できるかを理解したいと思います。絶え間ないシークが多すぎるリソースを使用している可能性があると感じていますか?

絶え間ないシークを回避するための可能な解決策は?

  1. RandomAccessFile1つは読み取り用、もう1つは書き込み用の2つのインスタンスをインスタンス化します。もちろん、これらは緊密に同期されます。
  2. 2つ使用しFileChannelsます。バッファの末尾またはバッファの先頭を読み取る必要があるときに、ポインタが移動しないようにする方法すらわかりません。
4

0 に答える 0