0

我的程序包含一个包含 600000 个元素的大数组(每个元素都是一个结构)。当我调试程序时,它在

FlightLeg *legRecord= new  FlightLeg[600000];(FlightLeg is a structure)

该程序消耗大量时间,因为它必须进行多次数据处理和初始数据加载(超过两天!)。

所以我想在调试时进行更改。我认为将 600000 更改为更小的值会有所帮助。如果我错了,请给我任何建议。

你能告诉我有没有办法在调试时改变600000?因为我不想丢失之前消耗两天的数据加载。

4

1 回答 1

0

这取决于几件事:

  • sizeof结构FlightLeg。_ 例如,如果FlightLeg需要 100 字节,则需要 60,000,000 字节的内存,这是巨大的,尤其是在分配连续内存时。
  • 在多次分配如此巨大的大小之后,您的进程可用的内存将受到限制。您可能需要编译和构建相同的 64 位版本,以便您可以利用更多(更多)内存。
  • 分配这种尺寸,不推荐这种类型。您应该使用一些集合类(如vector, list)来做同样的事情。即使数组大小是恒定的,我也不推荐编译时分配(即堆栈分配)。
于 2012-12-05T08:02:50.720 回答