有一台主机做SQL数据服务器,有两台客户端,客户端运行**系统,里面的窗体都是:  Application.Initialize;
  Application.CreateForm(TForm1, Form1);--********
  Application.Run;  形如上面星号处创建的,动态没有创建任何窗体或其他组件,有也释放掉了,但现在情况是每运行一次,内存上涨10M,及时退出也只能下降2M左右,当然,整个程序进程在关闭程序后已经结束掉,假如不关机的话,客户端一定会挂掉!
另外,服务器也是这样,应该是调用的ADO占用内存,同样也是没有释放掉?!总之,每天运行到一段时间就会影响运行速度,现在还好,至少每天他们会关机,假如服务器24小时连续运行,那后果很惨:(大虾门,帮帮我

解决方案 »

  1.   

    检查一下如下的地方.
    Create;
    new;
    以及其它的内存申请语句,有没有对应的释放过程
      

  2.   

    >>假如服务器24小时 连续运行,那后果很惨:(
    假如程序方面没有问题的话,自己写个DOS批处理文件,加到任务计划中,定时关闭启动SQL服务。
    我在项目中也这样,只不过好点一个星期启动一次。
    @echo off
    net stop SQLSERVERAGENT
    net stop MSSQLSERVER
    net Start MSSQLSERVER
    net start SQLSERVERAGENT
    @echo on
    存 *.bat
      

  3.   

    SQLServer为了提高效率,会尽可能的占用资源(内存)。
      

  4.   

    ADO不用的时候就Close掉一切数据用了就丢!特别是DataSet之类的东东!
      

  5.   

    ADO都close掉了!但是数据库吃掉的内存还是无法回来
      

  6.   

    这些内存也许是由WINDOWS管理的,当一个程序退出时WINDOWS并不立刻清理所有这个程序占用的内存,当你第二次打开时会很快的。你可拿WORD试一下。
       当然你说的这种情况可能不属于我上面说的,你可找个内存泄露软件查一下。