.Net程序的内存消耗
随便开了个WinForm工程,拖了几个控件上去,然后运行,发现内存消耗竟然达到了25~30M。
自己编了一个稍微有用点的东西是WinForm+DLL,发现消耗高到70+ M
一台机器的内存才多少啊。这么大的内存消耗量正常么?还是我哪没设置好?
问题点数:20、回复次数:19Top
1 楼tangyong12(海洋之星)回复于 2005-12-21 09:19:21 得分 0
.NET编译后的应用程序内存占用应该不会那么多,可能你在编译的时候内存会大点。Top
2 楼jailu(jailu)回复于 2005-12-21 09:20:42 得分 0
确写如此,怪哉Top
3 楼Flashcom(虫虫)回复于 2005-12-21 13:40:55 得分 10
你是在调试吧。。。。Top
4 楼jinqinghai()回复于 2005-12-21 14:06:14 得分 0
刚才尝试了一下自己编的项目,大约消耗50M左右,楼主的程序里面是不是用的控件太多了?
Top
5 楼tiaoci(我挑刺,我快乐)回复于 2005-12-21 15:19:21 得分 0
一台机器的内存才多少啊
大概是1G左右
70M/1G = 7%Top
6 楼speedfirst(speedfirst)回复于 2005-12-21 18:40:44 得分 0
都有1G的内存,羡慕啊。
我是说,用普通C++写的东西内存消耗从来没超过1M过。
本来猜测.Net的应用程序顶多就10M左右,结果……
但愿是调试的问题吧。
如果发明一种语言,能够自动GC和手动Delete同时用就好了。Top
7 楼ChrisAK(LOLICON)回复于 2005-12-22 00:52:29 得分 0
.net下一个空的WinForm显示后都要吃将近10M的内存的......
可是如果最小化后再还原就变成了1M左右(有时只有几百K)
所以我一般采用这种办法释放内存.不知道MS搞的什么明堂...Top
8 楼zeusvenus()回复于 2005-12-22 08:01:59 得分 10
不算异常,因为CLR就要消耗不少内存。
同时,如果你再增大应用的规模,内存消耗增大也不会特别明显。Top
9 楼tiaoci(我挑刺,我快乐)回复于 2005-12-22 08:29:22 得分 0
那你就去用C++写好了,
也没人求着你用.NET啊 :)
只要你键盘敲得够快,脑细胞足够多
Top
10 楼mobydick(敌伯威|我排著队拿著爱的号码牌)回复于 2005-12-22 09:18:17 得分 0
楼主可以再开一个线程用于垃圾回收(GC.Collection()),每隔5秒回收一次,保证内存消耗在30M以内。Top
11 楼zk911(尘埃)回复于 2005-12-22 09:23:25 得分 0
我也遇到同样的问题
每次运行我的程序时 六、七十的内存就被占用了
好郁闷啊
不知道把程序拿到配置比较低的机器上会是一种什么结果
不敢想象啊
555555555
Top
12 楼hl_ws(小数点)回复于 2005-12-22 09:39:43 得分 0
编译后再运行就没这么大了Top
13 楼DiverSoft(採珠人)回复于 2005-12-22 10:05:38 得分 0
学习
====CSDN 小助手 V2.5 2005年11月05日发布====
CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
下载:http://szlawbook.com/csdnv2
Top
14 楼wls12342004(青青子木)回复于 2005-12-22 10:31:34 得分 0
拜托,这有什么好争的, 不同的项目不同对待呗,如果是做系统软件就是c++了,如果做应用的话,.net快,多点内存应该没关系的,除非特殊情况1Top
15 楼speedfirst(speedfirst)回复于 2005-12-22 19:38:06 得分 0
可惜C++ 没有.Net那么好用的类库。要用什么还要满世界找,同时,质量参差不齐。Top
16 楼Yuna_2z(其实游戏是一艺术,而我只是身陷其中!)回复于 2005-12-22 21:00:28 得分 0
回复人: mobydick(敌伯威|我排著队拿著爱的号码牌) ( ) 信誉:100 2005-12-22 9:18:18 得分: 0
楼主可以再开一个线程用于垃圾回收(GC.Collection()),每隔5秒回收一次,保证内存消耗在30M以内。
这个注意现在好象比较流行……
Top
17 楼wmhnq()回复于 2005-12-22 21:08:47 得分 0
在散养700,192内存上跑,感觉就是一般慢,主要是慢习惯就好。Top
18 楼speedfirst(speedfirst)回复于 2005-12-22 21:17:09 得分 0
回复人: mobydick(敌伯威|我排著队拿著爱的号码牌) ( ) 信誉:100 2005-12-22 9:18:18 得分: 0
楼主可以再开一个线程用于垃圾回收(GC.Collection()),每隔5秒回收一次,保证内存消耗在30M以内。
===============================================================
那为何不设计一个Delete命令,让我能手动管理的就手动管理,手动管理不了的再自动GCTop
19 楼speedfirst(speedfirst)回复于 2005-12-22 21:20:39 得分 0
突然想到C++/CLI 似乎可以同时维护托管堆和非托管堆,
好好研究一下回去。Top




