最近在弄.net程序时发现,程序运行起来以后占用的内存在一直增涨。例如在单击某个按钮时,程序的内存始终增加,但在单击事件中并没有执行任何代码。在执行了System.GC.Collect()以后占用的内存没有减少。想请问下这是什么原因。我的程序是C#的winform程序。

解决方案 »

  1.   

    .net 搭配 vs 可以很快的写仔细检查下, 肯定有原因的.
      

  2.   

    有东西没释放
    看看程序里面有什么for啊timer之类的东西,查一下里面的对象。
    一般是byte[]或者image之类的东西没释放导致的。小东西.net自己能很快释放掉。大一点的还是自己dispose好。舞蝶飞数码创意

    .net开发的图像处理软件。
    图片合成flash
    图片合成ppt
    图片合成avi视频
    免费照片边框
      

  3.   

    什么代码都没有写. 就是加个按钮,点下也会增加.如果程序最小化,占用的内存回变成几百K.但是还原以后,又会占用10M左右的内存.再点几下按纽,内存又会涨,每次涨几十K.没有装任何第三方的组件.
    问题很奇怪.
      

  4.   


    正常的吗,程序运行时间长了,会占挺大的内存.用empty.exe可以释放一部分.但时间长了又回增加.这是.net的通病吗?
      

  5.   

    太难了 帮不了你
    可能是某些循环造成的
    所有与UI DB IO 相关的资源 OPEN后 都 CLOSE没, 用完都DISPOSE没如果还没问题
    在庞大的循环最后加上System.Threading.Thread.Sleep(0);(写在循环里面)
      

  6.   

    感觉不像是程序问题...是.NET的问题...
    D版不用说,重新下个,重新安装下系统看看.
      

  7.   

    .net 有时会遇到很卡这种问题,比如说点保存都要保存半天,一般情况关掉重新打开就好了
      

  8.   


    我以前也遇到过
    类似情况是我的
    日志记录程序出错!
    里的基类出错了没有实现IDisposable
    接口
      

  9.   

    如果大盘像 .net 内存占用一样, 节节攀升, 直到涨停,
    该多好.