程序中组件用的稍微比较多的时候,程序一启动就吃掉10几M内存,大家是如何解决这个问题地?
而且发现像Opendialog...这样的组件只要1打开就会吃掉6M左右,并且不会减少,我仔细检查过程序,不应该是内存泄露的问题,难道delphi本身就有这个问题。

解决方案 »

  1.   

    那是因为你有占内存的操作呗,看看是不是什么stream之类的操作
      

  2.   


    没有,纯粹是拉的组件比较多。因为我程序主要功能就是编辑txt文件。
      

  3.   

    不能完全说是Delphi的问题。
    都这样,只不过,M$自己有特别的优化并且用的多是延迟加载。
    不信的话你用Visual Studio静态连编一个MFC程序看看。
    Delphi拖拽控件多是静态加载的,随程序启动时一起加载。所以看起来貌似占内存,如果你也用动态加载就可以减少启动时的内存使用量。
      

  4.   

    程序占用内存是由于申请内存造成,如果要降低物理内存,可以把物理内存刷为虚拟内存,不过会降低程序速度,刷新内存函数
    begin
      SetProcessWorkingSetSize(GetCurrentProcess, $FFFFFFFF, $FFFFFFFF);
    end;
      

  5.   

    这种方法只使用于windows2000以上,安全模式没试过
    所以使用前要判断系统类型