たとえば、25GBの大きなテキストファイルを読み、15〜20分以内にこのファイルを処理する必要があります。このファイルには複数のヘッダーとフッターのセクションがあります。25GBの大きなテキストファイルの読み込みと処理
私はCSplitでヘッダーに基づいてこのファイルを分割しようとしましたが、ヘッダーに基づいたファイル数に分割するのに24~25分ほどかかりますが、これはまったく受け入れられません。
BufferReader
とBufferWiter
と一緒に、FileReader
とFileWriter
の順に読み書きを試みました。それは27分以上かかる。再び、それは受け入れられません。
各ヘッダーの開始インデックスを取得し、RandomAccessFile
を使用して特定の場所からファイルを読み取るために複数のスレッドを実行するような別の方法を試しました。しかし、これに運がない。
私の要求をどのように達成できますか?
の可能性のある重複:
NIOには独自の醜い制限があります。バッファAPIがすべてのオフセットにintを使用するため、2GBを最高でバッファとしてマップできます。これにより、大容量のファイルに対しては非常に扱いにくいものになります。 – Durandal