内存释放问题,急!!! 一个报表程序,使用ADO控件和fastreport控件,在运行的时候程序占用内存达到11兆左右,而且在运行的时候越来越大。后面的原因可能是我在程序运行中没有释放窗体,但是应该怎么写代码来释放,代码写在哪里?还有怎么让程序初始的时候占用内存更小? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 帮你up,把你动态创建的那些form组件注意一下 1。使用VirtualLock()和VirtualUnlock()这两个API函数。VirtualLock函数可以将申请的一段虚拟内存锁死在物理内存中,这样,在任何情况下操作系统也不会将这段虚拟内存叶面调回硬盘中。因此如果程序分配的某一段内存对程序的运行非常重要,不希望操作系统在繁忙的情况下将它移动到硬盘上,就可以使用VirtualLock将这段内存锁死在物理内存中。用完这段内存后,记住一定要用VirutalUnlock函数。VirtualUnlock韩书会告诉操作系统对刚才锁死的内存进行解锁,即操作系统在需要的时候可以将这段内存交换到硬盘中。2。使用SetProcessWorkingSetSize(-1,-1)函数,当应用程序空闲时,或者不再使用工作集。。打得累死了,就写这么多吧这上面的文字是《软件开发的科学和艺术》里面的,你可以看看。释放内存还有一个方法:最小化,恢复。 还有一种可能就是你的ado占用了内存,你可以控制释放ado所占用的内存。 ado确实占了很多内存,但是我却不知道怎么释放,每次打开一个表之后再关掉却看不到使用内存的减少,close好像是不管用的。如果哪位达人知道怎么处理,请给出详细的代码。还有上面提到的动态创建窗体并释放,也希望能有具体的代码给看看,多谢! Form1 :=TForm1.Create(Nil) ;try Form1.ShowModal ;finally Form1.Free ;end ;或者procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin Action :=caFree ;end ; 按白水兄的方法,报错说已经存在同名的对象,请问在程序初始化的时候应该怎么样做,难道把application中的Tform1Create()语句删掉吗?请给出动态创建窗体和释放窗体的全过程。多谢!! 先判断,如不存在就Create存在的话就输为NIL licese: Nil仅仅是空指针而已,他并不代表着资源的释放。对于窗体而言如:frmLogin.free才代表了资源的释放。我想提的问题是:在三层结构中客户端如何的释放客户端指针,如何让服务器立即释放该指针所指向的实例 一切对象皆指针!free只是清空了内存空间,nil才是清空指针 在窗体的OnClose事件中写:action:=cafree;在窗体的OnDestoy事件中写:from:=nil;ADO组件释放内存使用Free方法。 USB BULK传输模式如何读进来一个很大的数据包 用华为SMEIDll.dll发送短信,SubmitA提交成功,但是手机却收不到怎么回事? 大家有没有作过"健身房管理系统"?能提供相关资料吗?~ 哪里有b/s编程的应用例子(demo也行)? DCOM问题,高人指点! 安装delphi6光盘中的teamsource,需要序列号,哪位大侠帮帮忙啊!着急! 问一个关于cxGrid控件的问题 软件测试是个繁杂的工作,希望能有自动测试的软件 大家好,我来回答刺激问题 菜鸟有道数组问题请教!!!!!!help,help 如何把标注文字加在条形码的下面?? 如何实现网络文件的拖放操作,给点建议!
2。使用SetProcessWorkingSetSize(-1,-1)函数,当应用程序空闲时,或者不再使用工作集。。打得累死了,就写这么多吧这上面的文字是《软件开发的科学和艺术》里面的,你可以看看。释放内存还有一个方法:最小化,恢复。
try
Form1.ShowModal ;
finally
Form1.Free ;
end ;或者
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action :=caFree ;
end ;
如不存在就Create
存在的话就
输为NIL
Nil仅仅是空指针而已,他并不代表着资源的释放。对于窗体而言如:frmLogin.free才代表了资源的释放。我想提的问题是:在三层结构中客户端如何的释放客户端指针,如何让服务器立即释放该指针所指向的实例
一切对象皆指针!free只是清空了内存空间,nil才是清空指针
action:=cafree;
在窗体的OnDestoy事件中写:
from:=nil;ADO组件释放内存使用Free方法。