我的delphi程序吃内存怎么办?help me!(100分)

  • 主题发起人 主题发起人 悠闲
  • 开始时间 开始时间

悠闲

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在的机器是256M内存,
运行delphi6后一编译程序(编译后6M多),可用物理内存就迅速下降。
运行一次后,内存就剩白分之十几了,再重新编译运行就死机
是我程序问题,还是delphi6问题,还是因为使用了过多的控件?
 
你肯定没有将资源释放掉,另外有的控件里对资源的释放也可能存在问题,所以控件能少用
就少用
 
在窗体的onclose事件中输入以下代码:
action:=cafree;
form1.free;
 
原因很多,有的是控件本身会造成内存泄漏,有的是你自己创建的东西没有释放。
很难说清楚。
一点一点的问:
1、你用第三方控件了吗?
2、你自己创建控件或者TStringList或者结构等了吗?
3、你的程序用到了数据库了吗?
4、你的程序是多窗口的吗?如果是,除子窗体以外的其他窗口如何创建的?
 
用任务管理器看看资源的占用情况。
最重要的是要及时释放不用的资源,比如创建了TStrings,用完后要Free掉。能不用控件的
地方就不要用控件。
 
可能是第三方东东的原因
 
尽量用MDIChild Form,OnClose时Free
少用AutoCreate Form
 
如何监测资源是否正常释放呢
 
另外还需要尽量使用动态调用扩展程序DLL,不要把许多函数以及重复的过程在程序运行
中就全部调入内存,看看QQ软件的目录,里面尽可能的使用了扩展程序。
 
自己创建的东西要要及时释放,窗口很多时最好动态创建。
你还可以这样实验一下,打开D6,运行它默认创建的程序,多几次,看是否有你说的情况。
 
后退
顶部