我正在做一个模拟程序。
程序首先要做的事情之一是读入一个巨大的文件(28 mb,大约 79'000 行),解析每一行(大约 150 个字段),为对象创建一个类,并将其添加到 TStringList。
它还读取另一个文件,该文件在运行期间添加了更多对象。最后,它最终成为大约 85,000 个对象。
我正在使用 Delphi 2007,该程序使用了大量内存,但运行正常。我升级到 Delphi XE,并将程序迁移过来,现在它使用了更多的内存,最终在运行中途内存不足。
所以在 Delphi 2007 中,在读取初始文件后最终会使用 1.4 gigs,这显然是一个巨大的数量,但在 XE 中,它最终会使用几乎 1.8 gigs,这确实是巨大的,导致用完并获得错误
所以我的问题是
- 为什么它使用这么多内存?
- 为什么它在 XE 中使用的内存比 2007 多得多?
- 我能做些什么呢?我无法更改文件的大小或长度,我确实需要为每一行创建一个对象并将其存储在某处
谢谢