我的程序开始运行占内存3M 一会就10M点一下最小化又3M多,但开始慢慢涨,请高手指教

解决方案 »

  1.   

    动态的数组3个,一个临时的每次用完都释放.2个要用所以没释放~。问题是你把程序最小化放着,他就能涨到10M,只要你点一下最小化,就马上变的比3M只多一点,之后有开始慢慢增长,如果没释放资源为什么一点最小化就影响这么大,点一下还原一般是6M多。这是什么问题啊?我看别的程序都不长啊,就我的跟个胖子一样越吃越大。
      

  2.   

    有多少窗体?没有用的窗体都释放了吗?
    还有有没有用到timer控件?不知道什么原因我电脑上只要用了这个控件就会出现你的情况,但是没你那么夸张,时间长了也只涨2~3M
      

  3.   

    有一个 Timer控件 组
    2个窗体,一个运行用的,一个设置用的。
      

  4.   

    你把Timer及其相关代码暂时禁用掉,然后再看看有没有那种情况出现。
    如果不出现了,就从timer身上入手检查代码,有没有多余的循环
      

  5.   

    多余的循环?是什么意思?Private Sub Timer1_Timer(Index As Integer)
      select case index
        case
           ........
        case
           ........
      end select
    end sub
    各控件时间不一,调用各自的处理函数,另外,我已经 
    Timer1(c_Timer1重连).Interval = 0
    但是该他的Timer1_Timer事件还是会运行一次.
      

  6.   

    程序主要就是靠 Time 带动运转的,如果取消Time程序就不转了啊
      

  7.   

    Timer 就是这样。试试只用一个 Timer,时间取你所需各个时间间隔的最大公因数。用一组计数器变量来计算所需要的中断。
    例如:
    dim mytimer(9) as longPrivate Sub Timer1_Timer()
    for i = 0 to 9
    mytimer(i) = mytimer(i) + 1
    next i
    if mytimer(0) = 2 then
    ......
    mytimer(0) = 0
    end if
    if mytimer(1) = 5 then
    ......
    mytimer(1) = 0
    endif
    ......
    end sub
      

  8.   

    我觉得根据楼主Timer的代码,完全不需要控件数组,既然最后都要判断Index,还不如为每个控件单独写。
      

  9.   

    这种现象明显是程序存在内存漏洞,VB自身还是比较完善的,但若调用了API,那VB就不保证了。最小化时,资源内存占用变小的部分,主要是GDI资源,所以你要优先找找有没有用到一些与GDI有关的API,当然这也可能是一些有BUG的第三方控件造成的。
      

  10.   

    停止TIMER动作该使用Timer1.enabled=false,立刻就不再进入了。
      

  11.   

    upsuper(究极人类) 我之所以用Time数组是听说用控件数组节省资源,其它控件都是以数组形式用的
    of123所说的取最大公因数的办法,实现关闭某个Time就需要加一个变变量开关。这个办法不错。
    homezj(小吉) 我没有使用第三方控件,最小化的瞬间使用内存降低,然后又开始增长,及时最小化也能增长到10M,然后你还原,再次最小化,一瞬间恢复为3M之后有慢慢增长。
    900126(息夫人) 谢谢,这个问题困扰我好久了,程序第一次启动 Timer1(c_Timer1重连).Interval = 6000
    而在6000之内我虽然 Timer1(c_Timer1重连).Interval = 0但依然不起效果,你说的我试下去~
      

  12.   

    前面说的:“你要优先找找有没有用到一些与GDI有关的API”
    找了吗?若你不清楚与哪些API有关,可以把程序中那些从网上抄来的代码,及Timer事件过程中的代码贴出来看看。
      

  13.   

    物理内存->虚拟内存可能是10mb中的7mb存到硬盘了
      

  14.   

    同意homezj(小吉) ,如果使用了GDI对象,估计是GDI内存泄漏。如:不断创建DC 却没有释放