X
xxhadsg
Unregistered / Unconfirmed
GUEST, unregistred user!
以前不太注意对象释放后的内存问题,今天做了个测试,发现问题,不知道是怎么回事。首先定义一个简单的类:TMyClass=class(TObject) private s:String; end;然后在程序中创建该类的实例并赋值:aClass:=TMyClass.Create;aClass.s:=aStr;aStr初始化为一段字符,我在窗体创建时用循环生成一个比较大的字符串,主要为了增加内存消耗:for I := 0 to 1000000 - 1 do aStr:=aStr+'*';程序中创建了aClass后故意没有释放,反复创建对象,在windows任务管理器中会看到程序占用的内存反复地在增长。因为对象没有释放嘛,正常。好,接下来做个释放的测试:try aClass:=TMyClass.Create; aClass.s:=aStr; finally aClass.Free; end;然后反复执行这个操作,在windows任务管理器中会看到程序占用的内存反复地在增长,发现内存一样没有得到释放!是什么问题?请大侠指点指点!