历 历史的脐带 Unregistered / Unconfirmed GUEST, unregistred user! 2006-11-24 #1 已经显式的Free了Form,跟踪进去发现程序也执行了Destroy,但在任务管理器里并没发现内存使用减少,这是为什么?
Z zhuangqr Unregistered / Unconfirmed GUEST, unregistred user! 2006-11-24 #2 就free 了一个form 怎么可能看的出来 内存减少了啊~
历 历史的脐带 Unregistered / Unconfirmed GUEST, unregistred user! 2006-11-24 #3 create时很明显增加了,是不是delphi内部封装的create了什么东西?
H hongfeng0727 Unregistered / Unconfirmed GUEST, unregistred user! 2006-11-24 #4 釋放 form 之前先釋放form 上的其它須要 釋放 objects
无 无柄叶 Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-01 #10 你是以什么方式show 的form? 是自动创建还是用Delphi里的form?如果是自动创建的,在第一次create后有加内存,free后不会释放,但是再create就不会家内存了。如果是Delphi里的form你看看工程里有没有 把第2个form 在开始时创建,如果没有就是会free不了内存。
你是以什么方式show 的form? 是自动创建还是用Delphi里的form?如果是自动创建的,在第一次create后有加内存,free后不会释放,但是再create就不会家内存了。如果是Delphi里的form你看看工程里有没有 把第2个form 在开始时创建,如果没有就是会free不了内存。
S sunnyfairy Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-01 #11 如果是动态创建,手动释放后,在管理器里刷新一下,应该差不多吧。
无 无柄叶 Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-01 #12 不好意思,刚才写错了,是“动态创建”不是自动创建!呵呵。笔误!!
S skyccf Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-01 #13 单单一个form占的内存很小的,在创建的时候增加了不少内存,那可能是form上有很多东西,free后没有减少可能是form上的东西有些没用被释放
S skyccf Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-01 #14 把下面的过程放到一个Timer中,每隔一段时间执行一次,如5秒。 procedure ClearMemory; begin if Win32Platform = VER_PLATFORM_WIN32_NT then begin SetProcessWorkingSetSize(GetCurrentProcess, $FFFFFFFF, $FFFFFFFF); Application.ProcessMessages; end; end;
把下面的过程放到一个Timer中,每隔一段时间执行一次,如5秒。 procedure ClearMemory; begin if Win32Platform = VER_PLATFORM_WIN32_NT then begin SetProcessWorkingSetSize(GetCurrentProcess, $FFFFFFFF, $FFFFFFFF); Application.ProcessMessages; end; end;
大 大花鸡 Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-01 #16 你在窗体里定义了一些其它的操作占用内存了吧?是不是没有全部释放?
L lindaolong Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-01 #17 我也会出现LZ说的情况,一直查找原因,就是不太明白,明明FreeAndNil调了,可是管理器中内存不会减少。希望能得到答案
M mmzmagic Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-01 #18 DELPHI内存管理器也有自己的算法,在申请内存的时候它会申请一大块内存,然后程序向它申请时它取出一小块(这样是避免多次申请的开销),同理释放的时候它只是将这一块数据标记为可用,并不是真的归还给操作系统。
DELPHI内存管理器也有自己的算法,在申请内存的时候它会申请一大块内存,然后程序向它申请时它取出一小块(这样是避免多次申请的开销),同理释放的时候它只是将这一块数据标记为可用,并不是真的归还给操作系统。
W wangwenfeng Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-01 #19 Action:=cafree; 在colse事件中
B bbscom Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-01 #20 在colse事件中 Action:=cafree; form1.free; form1:=nil; freeandnil(form1);