delphi7中,如果我对一个工程组做Compile all projects,完成后整个系统变的非常的慢,重起delphi才行,有许多资源没有释放,在delphi2006中依然如故,没有修正,真让人失望

解决方案 »

  1.   

    Delphi 6 里面也一样
    大量的内存没有被释放
      

  2.   

    忘记了出处,一篇国外的文章里就提到过Delphi7的这个问题
      

  3.   

    另外大家可以试一下,打开某个目录中的项目,再关闭,或者Close All, 这个目录无法被删除,除非退出Delphi,才能删掉,说明虽然关闭了项目,但依然有些东西没有释放
      

  4.   

    TO DongXF (孔雀东南飞) :
    你的工程是否开辟的一些资源,你没有释放?要注意一些对象是否由系统释放,很多对象和子对象需要你手动释放的。DELPHI FOR WIN32 不是.NET,.NET的垃圾回收是给不是程序员的程序员准备的,而且垃圾回收机制狠大的苦恼就是大部分情况下你无权释放资源,而64K以上的动态数组需要2次以上的回收才能释放,循环开辟它,就等待恶梦吧。还有无法删除的问题是DELPHI在打开一个项目后,会把那个项目文件所在的文件夹设置成他的当前目录,既然有软件使用了这个目录,WINDOWS就不允许你删除了,这个是MS的保护机制,不要把这个弱智问题丢给BORLAND。
      

  5.   

    >>再关闭,或者Close All, 这个目录无法被删除
    这个问题,可以理解,不算bug,我想
      

  6.   

    同上,我也同意,我经常性的Compile all projects或 Compile all projects From Here都没有问题。呵呵不过我的比较大。
      

  7.   

    回复: 快乐老猫(无米下炊) 
    TO DongXF (孔雀东南飞) :
    你的工程是否开辟的一些资源,你没有释放?要注意一些对象是否由系统释放,很多对象和子对象需要你手动释放的。DELPHI FOR WIN32 不是.NET,.NET的垃圾回收是给不是程序员的程序员准备的,而且垃圾回收机制狠大的苦恼就是大部分情况下你无权释放资源,而64K以上的动态数组需要2次以上的回收才能释放,循环开辟它,就等待恶梦吧。---------------------------------------------
    我只是打开项目组并没有运行,所以我的代码没有执行,没有开辟资源啊,至于控件开辟的资源,在打开项目组时已经建立了,这时并不慢啊
    ---------------------------------------------还有无法删除的问题是DELPHI在打开一个项目后,会把那个项目文件所在的文件夹设置成他的当前目录,既然有软件使用了这个目录,WINDOWS就不允许你删除了,这个是MS的保护机制,不要把这个弱智问题丢给BORLAND。我认为Delphi关闭项目后,应该释放对项目目录的使用权啊,当然这个问题不算什么,只是觉得不太方便
      

  8.   

    回复人: xthmpro_cn([可人]) ( ) 信誉:105  2005-12-17 08:42:00  得分: 0  
     
     
       同上,我也同意,我经常性的Compile all projects或 Compile all projects From Here都没有问题。呵呵不过我的比较大。
      
     
    我的项目组大概包括20多个项目,每次Compile all后都很慢,真羡慕你,没这个问题
      

  9.   

    TO DongXF(孔雀东南飞) :
    目前没有发现编译后资源泄露问题。也许我写的东西不够大。不过还是建议你检查下你的系统,尤其是杀毒软件,瑞星的咚咚跟很多软件冲突的,我一般用金山。对于当前目录的问题,只是程序的书写习惯罢了,你又没有要求打开新的项目组,系统认为没有必要重新设定当前目录罢了。
    如果你需要打开另一个项目组的话,只要你打开那个项目组,当前目录就变了;
    如果你不需要打开任意项目组的话,只要你关闭DELPHI环境,也就没有当前目录这个制约了。
    所以,无法删除上一个打开的项目的目录,和你的操作习惯也是密不可分的。