0

この問題を実装するのに最適なデータ構造を見つけようとしています。アカウント番号、一意のID、日付、PDFフォーム名、税コードを含むインデックスファイル(〜200000レコード)があります。ファイルから読み取られたこれらの値に基づいて、いくつかのアクション(免除、削除、課税など)を割り当てる必要があります。アクションが割り当てられたら、このアクションを実装する必要なメソッドを呼び出すことができます。膨大な量のデータが私が判断できない理由です。助言がありますか?

4

1 に答える 1

0

200,000レコードは、膨大な量のデータではありません。

各レコードが別のレコードを参照する必要がない限り、ファイルをストリーミングできます。行を読み取り、それをオブジェクトに変換し、必要に応じてそのオブジェクトを処理し、必要なアクションを呼び出して、ファイルの次の行に進みます。

この方法を使用すると、データからのメモリフットプリントはほぼゼロになります。

または、ファイルを読み取って1つのスレッドの行ごとに1つのオブジェクトを作成し、各オブジェクトをキューに配置し、1つ以上のワーカースレッドを使用してオブジェクトをキューから取り出して処理することもできます。これにより、キューのサイズに応じて、メモリをいくらか犠牲にしてマルチコアCPUをより有効に活用できます。もちろん、メモリ不足を回避するために最大キューサイズを設定できます(キューがいっぱいになると、ファイルリーダースレッドはキューがいっぱいになるまで一時停止します)。

于 2013-01-11T02:33:33.510 に答える