我开发一些数据库程序,运行后在大概会占用8-14M的内存,当最小化时,内存占用就会减少到很小(至少在Windows任务管理器看起来减少了),即使再还原也比最小化前的占用内存要少,显然程序释放了一些内存。我的问题是这些内存是如何释放的?能不能由我自己来释放而不是通过最小化
-还原来释放。附:
  我曾经仔细看过源代码,好像与Delphi的内存管理器(getmem.inc)无关。  开发环境:Windows2000Adv + Delphi7.
  数据存取:ADO + SQLServer2000

解决方案 »

  1.   

    最小化时操作系统会把应用程序占用的内存交换到磁盘的交换文件上,所以减少了。
      

  2.   

    好象是由操作系统存贮管理。由操作系统来决定是换入还是换出吧。
      

  3.   

    但为什么恢复后占用内存还是比原来少。我在XP下,切换用户再进去,程序占用内存也会减少。
      

  4.   

    这个我的理解是,在最小化或者后台执行的情况下,都会把你的程序的执行优先级降低,这时候,内存管理就会把一些文件(页面)写到磁盘上(或者说虚拟内存上),待到重新调出的时候,一部分回到物理内存执行,领一部分还滞留在磁盘上。
    你可以看一下页面交换的帖子,以及内存管理方面的章节。
      

  5.   

    程序占用内存会减少,但是过一会就会达到标准的占用了.
    这个内容你应该看微软的一本叫做什么来着的一本书.就是微软公司里面的很多华人写的那一本,里面有讲到