日期:2014-05-18  浏览次数:20971 次

关于网络连接套接字Socket,关闭连接后,为什么程序的内存不会释放。
Socket.Close() 不能彻底关闭连接吗?如果可以的话,为什么关闭所有连接后,程序占用的内存不但没下降,还有上升的趋势呢?怎样才能彻底关闭连接?

------解决方案--------------------
Socket 本身占不了多少内存,是不是还有别的没释放?
------解决方案--------------------
这段代码根本占不了什么内存,程序除了检测客户机是否存活外还做什么,有没有大数据量的运算?
------解决方案--------------------
4000K 是不是4M啊?现在服务器一般都有12G内存吧

------解决方案--------------------
另外,不要死盯着socket这里,可能是别的地方占了资源,例如:字符串操作,new()了太多对象,拷贝内存等等
慢慢优化吧
------解决方案--------------------
探讨
引用:
这段代码根本占不了什么内存,程序除了检测客户机是否存活外还做什么,有没有大数据量的运算?


有涉及数据存储和数据传输,不过那些方法现在都还没调用,一些自定义对象倒是有,不过个人感觉影响不大吧
内存占用大概是4000K 左右,打开十个客户端,连接后是4300K左右,主要是关闭后,内存还是4300K . 是不是这些微小的变化可以忽略不计? 可是对于一个要运行一两个月……