gpt4 book ai didi

C++ 大型内存对象集合好吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:52:45 24 4
gpt4 key购买 nike

我正在编写一个 C++ 应用程序来分析 IATA SSIM 格式的航类时刻表。航空业组织 IATA 指定了用于在系统之间传输时间表的文件布局标准,“SSIM”文件包含有关时间表的信息,以及一家或多家航空公司的所有相应航类。

我设计了一个包含 Flight 对象集合的 Schedule 对象。输入文件中通常有 2,000 - 20,000 个航类,- 生成的对象的大小将达到 50MB 左右。到目前为止,我读入了平面文件,并创建了生成的 Schedule 对象,然后对其进行分析/操作以用于报告目的。

我的问题是 - 从设计的角度来看是否可以这样做,即。在我报告时,该应用程序是否将所有航类和日程表对象保存在内存中?另一种方法是将飞行对象在磁盘上序列化,并且只在我需要时处理内存中的事件记录。这将减少所用内存的大小,但从编码角度来看显然更麻烦。

我知道对此没有“标准”方法,但我想知道人们对管理内存中非常大的对象的看法是什么。这是漂亮的标准还是次优设计?我的偏好是将所有内容都保存在内存中,并在不诉诸序列化的情况下处理对象。

谢谢大家皮特

最佳答案

如果您可以毫无问题地将它们全部保存在内存中,那么就这样做 - 其他一切都将是过早的优化。

要牢记的重要一点是,以这样一种方式将算法和数据结构分离,这样您以后就可以切换到不同的策略,而无需重写您的应用程序逻辑。如果您的算法在航类列表上的迭代器上运行,那么您可以稍后更改这些迭代器的逻辑(从内存读取、从磁盘读取),而无需修改您的算法。

关于C++ 大型内存对象集合好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13910873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com