我正在编写一个 C++ 应用程序来分析 IATA SSIM 格式的航班时刻表。航空业组织 IATA 指定用于在系统之间传输时刻表的文件布局标准,“SSIM”文件包含有关时刻表的信息,以及一家或多家航空公司的所有相应航班。
我设计了一个包含 Flight 对象集合的 Schedule 对象。输入文件中通常有 2,000 到 20,000 个航班,结果对象的大小最多约为 50MB。到目前为止,我读入了平面文件,并创建了生成的 Schedule 对象,然后对其进行分析/操作以用于报告目的。
我的问题是 - 从设计的角度来看是否可以这样做,即。当我报告它时,应用程序是否将所有航班和计划对象保留在内存中?另一种方法是将飞行对象序列化在磁盘上,并且仅在我需要它们时处理内存中的活动记录。这将减少已用内存的大小,但从编码的角度来看显然更麻烦。
我知道对此没有“标准”方法,但我想知道人们对管理内存中非常大的对象的看法是什么。这是相当标准还是次优设计?我的偏好是将所有内容都保存在内存中,并在不求助于序列化的情况下处理对象。
谢谢大家皮特