我用C#编的系统耗费内存太大,刚启动就30MB运行一段时间就40MB有没有方法可以减少他的内存消耗?

解决方案 »

  1.   

    没啥办法,只能赖写代码的人
    叫他重写
    原则
    能用using的用using
    能不加载的不加载,少new东西,尽量传递
    没用了就释放=null  =“” 或dis
      

  2.   

    .net就是一开始耗内存比较高,但是你多开几个窗口也就耗那么多而已
      

  3.   

    我也遇到同样的问题,不过我用定时器来做通讯,不停的new一些字节,接收的时候也new了一些字节,内存不断的增加!!!!!!
        是不是new得太多了,怎么释放 啊??/提供好的办法另外给分!!!!!
      

  4.   

    可是我的定时器不停的new啊,接收线程也不停的new了一些对象,程序内存运行时不停的增长,运行20个小时左右,机器死了!!!!!!!!!!!11
      

  5.   

    接收是不停的new是什么意思,看似是代码问题。
      

  6.   

    如果确实资源紧张,还是不要用.NET好。本来.NET就是为了进军企业市场做的。内存小了就干脆别用。
      

  7.   

    呵呵,你不停的new不一定不好,关键是符合你的业务逻辑就可。至于,内存消耗问题,可以强制回收,除了赋值为null外,还可以重载dispose()方法,以及调用GC.Collect()方法。
      

  8.   

    在很久以前我就发帖子问这个问题了,但是并没有人能够提出比较好的方法来。即使不用的强制回收还是导致了资源大量占用,这是.net的缺点。以前我有个程序就是这样的,一开始没有任何问题,操作一会儿就不行了,这个代码可能是一回事,但和.net的本身还是有关系的。以上的这些方法并不能实际性的降低资源的占用。
      

  9.   

    真的能在程序中手动或强制释放内存吗?好象是不行的吧。我的理解是
    在Managed中是不行的,只能向CLR祈祷,在内存用完之前能及时回收一些来;
    楼主是否可以考虑用UnManaged代码来申请内存,自己释放?没有实际做过,楼主试试。
      

  10.   

    你写的程序有问题吧。比如写个dataset之类的东西。用完后要dispose()
      

  11.   

    可以时不是的调用System.GC.Collect();.Net自己清理内存好象也用的是这玩意.
    不过我感觉,效果也不是太理想(到是该析构的全析构了),
    不过.Net不推荐自己用这个方法