我制作了一个应用程序,它必须在内存中存储大量数据以提高计算性能。
它是列表和对象的层次结构,其中顶部对象是. 加载数据时,会创建很多实例并将其添加到列表中。内存消耗增加,当涉及到 ~1.9Gb 时,程序崩溃。我的电脑 (Vista) 有 4Gb RAM,我已经在其他 RAM (XP) 较少的电脑上进行了测试,但它同时崩溃了。我不能使用超过 1.9Gb 的 RAM 吗?QList<myObject*>
new myObject*
当加载较小的文件并且根据“Windows 任务管理器”的内存使用量为(例如)1.2Gb 时,我可以使用这些数据。但是,如果我想加载另一个文件,即使在调用delete
所有对象并清除列表之后,也会从 1.2Gb 开始增长。为什么?
我尝试切换到QVector
并调用squeeze()
,但内存保持不变。我在这里阅读了关于 QLists 中动态内存分配的其他线程,但是在加载新文件之前真的没有办法重置内存吗?特别是因为它在 1.9Gb 之后崩溃;依次加载 3 个小文件,我就在那里。
非常感谢您的任何建议。