【发布时间】:2011-11-07 14:54:17
【问题描述】:
可能重复:
TStringList of objects taking up tons of memory in Delphi XE
我有一个程序需要一段时间才能运行并使用大量内存(开始时大约 800 mb,结束时大约 1.1 GB)。
我遇到的问题是,即使它使用的内存量很好,但提交的内存量超过 4GB,并给我一个“内存不足”错误。
这是资源监视器的屏幕截图:
占用内存的主要是一个 TStringList 填充了一个对象,该对象具有一堆不同的值和一些字符串列表
有谁知道为什么它提交的内存比我需要的多,我怎样才能让我的程序不这样做?
【问题讨论】:
-
可能是内存泄漏?
-
我不确定,当我将对象添加到 TStringList 时,内存(至少是工作内存)会稳步上升,如果我在这样做之后不添加任何对象,它根本不会上升最初。
-
您使用的是哪个版本的 Delphi?您是否将 FastMM4 用于旧版本的 Delphi?如果没有 - 你应该 - 并使用它的内存泄漏跟踪。
-
这不是同一个问题:程序使用了大量的工作内存。我将使用量减少了不到一半,所以工作内存很好,但提交的内存是问题。
-
我使用的是 Delphi 2007,我认为它内置了 FastMM4。除非那是旧版本,我应该使用更新的版本?