随便开了个WinForm工程,拖了几个控件上去,然后运行,发现内存消耗竟然达到了25~30M。自己编了一个稍微有用点的东西是WinForm+DLL,发现消耗高到70+ M一台机器的内存才多少啊。这么大的内存消耗量正常么?还是我哪没设置好?

解决方案 »

  1.   

    .NET编译后的应用程序内存占用应该不会那么多,可能你在编译的时候内存会大点。
      

  2.   

    一台机器的内存才多少啊大概是1G左右 70M/1G = 7%
      

  3.   

    都有1G的内存,羡慕啊。我是说,用普通C++写的东西内存消耗从来没超过1M过。本来猜测.Net的应用程序顶多就10M左右,结果……但愿是调试的问题吧。如果发明一种语言,能够自动GC和手动Delete同时用就好了。
      

  4.   

    .net下一个空的WinForm显示后都要吃将近10M的内存的......
    可是如果最小化后再还原就变成了1M左右(有时只有几百K)
    所以我一般采用这种办法释放内存.不知道MS搞的什么明堂...
      

  5.   

    不算异常,因为CLR就要消耗不少内存。
    同时,如果你再增大应用的规模,内存消耗增大也不会特别明显。
      

  6.   

    那你就去用C++写好了,也没人求着你用.NET啊 :)只要你键盘敲得够快,脑细胞足够多
      

  7.   

    楼主可以再开一个线程用于垃圾回收(GC.Collection()),每隔5秒回收一次,保证内存消耗在30M以内。
      

  8.   

    学习====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2
      

  9.   

    拜托,这有什么好争的, 不同的项目不同对待呗,如果是做系统软件就是c++了,如果做应用的话,.net快,多点内存应该没关系的,除非特殊情况1
      

  10.   

    可惜C++ 没有.Net那么好用的类库。要用什么还要满世界找,同时,质量参差不齐。
      

  11.   

    回复人: mobydick(敌伯威|我排著队拿著爱的号码牌) ( ) 信誉:100  2005-12-22 9:18:18  得分: 0  
     
     
       
    楼主可以再开一个线程用于垃圾回收(GC.Collection()),每隔5秒回收一次,保证内存消耗在30M以内。这个注意现在好象比较流行……  
     
      

  12.   

    回复人: mobydick(敌伯威|我排著队拿著爱的号码牌) ( ) 信誉:100  2005-12-22 9:18:18  得分: 0  
     
     
       
    楼主可以再开一个线程用于垃圾回收(GC.Collection()),每隔5秒回收一次,保证内存消耗在30M以内。
    ===============================================================
    那为何不设计一个Delete命令,让我能手动管理的就手动管理,手动管理不了的再自动GC
      

  13.   

    突然想到C++/CLI 似乎可以同时维护托管堆和非托管堆,
    好好研究一下回去。