关于.net 中内在占用过大问题。

Qim 2006-04-26 03:46:33
普通的一个windows Form 一编译运行就会点用7M以上的内存。当改变WindowState为Minimized时却仅占用1M多一点点的内存。哪位高手能解释一下。如何手动控制内存的释放?多谢多谢。
...全文
260 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
aSalt 2006-04-27
  • 打赏
  • 举报
回复
....
HengHuan 2006-04-27
  • 打赏
  • 举报
回复
呕,来帮顶
sugarsupper 2006-04-27
  • 打赏
  • 举报
回复
都是这样的了
diandian82 2006-04-27
  • 打赏
  • 举报
回复
又不会死机,怕什么?
stanly20000 2006-04-27
  • 打赏
  • 举报
回复
这种钻牛角尖的问题还在讨论啊.
Qim 2006-04-27
  • 打赏
  • 举报
回复
UP
Qim 2006-04-27
  • 打赏
  • 举报
回复
楼上达人?说的太轻松了吧?
现在不是说有没有必要的问题。
而是为什么它会占用本不应该占用的内存???为什么刚开始的时候占用最大,最小化之后会占用很小,从最小化恢复normal后仍占用很小。如果我运行一个程序,不把它最小化,难道那些刚开始运行占用的内存它会一直占有????

引用:
7m是可以理解的,.NET提供的窗体资源比较丰富,内存自然要耗得多一点;还需要有CLR再入后占用的内存(提供多个不同线程来维护应用程序)。当最小化之后,内存占用变少是windows机制,当一个程序处于inactive状态的时候,它的物理内存会被压缩,一部分数据会被缓存到硬盘,实际也就是虚拟内存。

可是当一个.net程序从最小化再变为最大化时,所占内存还是那么少.
这跟windows机制应该也有关系.
非托管程序也有这种现象,只是没有这么明显罢了.
可能是托管程序刚运行时需要额外的内存,而运行起来以后这部分内存就可以释放了.
-渔民- 2006-04-27
  • 打赏
  • 举报
回复
這些都是老生常談了,覺得沒有必要,硬件也要和軟件一起發展的,水高船漲
Qim 2006-04-27
  • 打赏
  • 举报
回复
多谢以上达人。
To Hemee() 如何手动更改inactive状态?

我想实现的只是把它占用的内在降的小一些。仅建一个空的Form,运行就会占用这么大的内存,总不是一件好事吧。大伙可以自己试试。

不只是内存条长不长价的问题。
huangguangdou 2006-04-27
  • 打赏
  • 举报
回复
关注
mmcl 2006-04-26
  • 打赏
  • 举报
回复
可是当一个.net程序从最小化再变为最大化时,所占内存还是那么少.
这跟windows机制应该也有关系.
非托管程序也有这种现象,只是没有这么明显罢了.
可能是托管程序刚运行时需要额外的内存,而运行起来以后这部分内存就可以释放了.
Hemee 2006-04-26
  • 打赏
  • 举报
回复
7m是可以理解的,.NET提供的窗体资源比较丰富,内存自然要耗得多一点;还需要有CLR再入后占用的内存(提供多个不同线程来维护应用程序)。当最小化之后,内存占用变少是windows机制,当一个程序处于inactive状态的时候,它的物理内存会被压缩,一部分数据会被缓存到硬盘,实际也就是虚拟内存。
Kshatriya 2006-04-26
  • 打赏
  • 举报
回复
你打算手动释放什么?把窗体的控件都销毁了?呵呵.
Kshatriya 2006-04-26
  • 打赏
  • 举报
回复
7M还算占用内存过大?
代码蜗牛sky 2006-04-26
  • 打赏
  • 举报
回复
这问题已经讨论过很多次了,一直没有实质性的解决方案
yuwen16 2006-04-26
  • 打赏
  • 举报
回复
System.GC.Collect(); 也不能立即释放
System.GC.Collect(2);会释放的快些。


Qim 2006-04-26
  • 打赏
  • 举报
回复
当改变WindowState为Minimized时,系统做了些什么呢?高手指点?
stanly20000 2006-04-26
  • 打赏
  • 举报
回复
我觉得只要内存不涨价,这个帖子可以结了.
卧_槽 2006-04-26
  • 打赏
  • 举报
回复
不知道你的form用来干什么了。
估计是加载的东西过多,Minimized得时候小说明了这点
yr_127 2006-04-26
  • 打赏
  • 举报
回复
System.GC.Collect(); 回收资源
加载更多回复(1)

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧