IATA SSIM 形式の航空会社のスケジュールを分析する C++ アプリを作成しています。航空業界グループ IATA は、システム間でスケジュールを送信するためのファイル レイアウト標準を指定しており、「SSIM」ファイルには、スケジュールに関する情報と、1 つまたは複数の航空会社の対応するすべてのフライトが含まれています。
Flight オブジェクトのコレクションを含む Schedule オブジェクトを設計しました。通常、入力ファイルには 2,000 ~ 20,000 のフライトがあり、結果のオブジェクトのサイズは最大で約 50MB になります。ここまでは、フラット ファイルを読み込んで、結果の Schedule オブジェクトを作成しました。このオブジェクトは、レポート目的で分析/操作されます。
私の質問は、設計の観点からこれを行うことは問題ありませんか。レポートを作成している間、フライト オブジェクトとスケジュール オブジェクトをすべてメモリに保持しますか? 別の方法として、フライト オブジェクトをディスク上でシリアル化しておき、必要なときにのみメモリ内のアクティブなレコードで作業することもできます。これにより、使用されるメモリのサイズが削減されますが、コーディングの観点からは明らかに面倒です。
これには「標準的な」アプローチがないことは知っていますが、メモリ内の非常に大きなオブジェクトを管理することに対する人々の見方は何なのか疑問に思っています。これはかなり標準的なものですか、それとも次善の設計ですか? 私の好みは、すべてをメモリに保持し、シリアル化に頼らずにオブジェクトで作業することです。
みんなありがとうピート