日期:2014-05-20  浏览次数:20841 次

★★★送分快来抢★★★:windows服务程序中用各种手段释放内存,怎么效果不明显?
用GC.Collect();变量=null;dispose等方法效果不明显.
服务器上有8g内存,释放内存率不到50%,内存一个劲往上涨。本机上有480m内存,释放内存率高些,效果明显.Why?

------解决方案--------------------

------解决方案--------------------
服务器不明显?
本地明显?
------解决方案--------------------
关注。
------解决方案--------------------
是由于 gc是根据内存的需求而来释放一些托管的 如果内存充裕就不会及时释放
------解决方案--------------------
gc回收机制不因为你的内存大小来的

它有个算法

到一定的程度才会释放的

所以你在8G上面不明显
------解决方案--------------------
gc回收机制不因为你的内存大小来的

它有个算法

到一定的程度才会释放的

所以你在8G上面不明显


还是程序要优化哦~!!!

------解决方案--------------------
对,内存充裕就不会及时释放,再说8G的不明显
------解决方案--------------------
内存拔了,只留256M。效果绝对明显
------解决方案--------------------
如果你明白了托管内存的释放机制,那么尽量避免产生内存垃圾
也许如下的文章对你有用。
《Effective C#》Item 16:尽量减少垃圾产生的数量
http://blog.csdn.net/Knight94/archive/2006/10/08/1326319.aspx
------解决方案--------------------
顶 沙发 顶沙发
------解决方案--------------------
哈哈 我顶........
------解决方案--------------------
接分....................
--------------------------------------
http://www.yanmingxuan.com.cn/
------解决方案--------------------
GM001(Sharepoint 2007)

不是程序优化问题

是资源占用率到一定的程度的时候才会启动GC自动回收

你要是觉得不爽也可以自己写方法回收

不过效率不见得比自动的GC回收效率高
------解决方案--------------------
接分就是真支持