我是用DBExpress连接MySQL,是一个托盘式的程序,每次打印预览的过程中,CPU占用率90%以上,内存最多有110M,关闭预览后,内存是50M,但是将托盘收起来后又还原,进程内存马上为3.4M左右,其实我每次在代码中都作了内存释放,为什么如果不先收托盘后还原的话,进程内存总是很大呢??

解决方案 »

  1.   

    有那么大吗?我用delphi做的报表东东。我是赛扬433的电脑。我根据你情况看了以下我的系统性能。打印预览时cpu占用7%。内存占用20m。而且我这是电脑里还开着四个csdn的页面,还有qq。还有诺顿实时文件保护系统。我想应该不是delphi的问题。
      

  2.   

    我肯定是没有将所有数据都读取出来,在我的SQL语句中是有where约束条件,不可能将所有数据都读出来的。顺便问一下,如何避免系统独占模式呢??
      

  3.   

    我简单重新做了一个程序,只有两个Form,点第一个Form上的一个按钮,显示第二个Form(空报表),就这样一个简单的程序,运行起来后刚开始显示用了5.9M内存,最小化后又最大化,内存只有1.66M,点按钮显示空报表后,占用内存是4.24M,这时最小化后又最大化,占用内存只有2.356M,
    关闭第二个Form(空报表),内存反而是3.068M,这时最小化后又最大化,显示占用内存只有1.696M,为什么这么奇怪?