public void Dispose()
{
try
{
this.connection.Shutdown(SocketShutdown.Send);
}
catch (Exception)
{
// Throw if client has closed, so it is not necessary to catch.
int k = 0;
}
finally
{
this.connection.Close();
this.connection.Dispose();
// finally
}
}
求大神们说说可能哪里占用了资源我没释放掉。
发现没分了,跪求指导,谢谢了!
7 个解决方案
#1
也有可能垃圾回收机制还没有去回收,测试时候强制调用GC清理下 看看是否内存有降
#2
试过用GC清理了,内存还是没下降!
#3
我用任务管理器看了一下,IO口数量一直在增加,这是什么原因?关闭了socket那资源应该释放了啊
#4
把你认为有问题的代码贴出来才能分析
#5
http://blog.csdn.net/zplove003/article/details/7776518
我是参考这个博客上来写的,我没有改动过,但是内存泄漏的原因我找不到
#6
不提交具体代码没办法帮你分析的,vs顶部菜单》分析》诊断与分析,创建个分析内存的,跑起来泡个半小时你就清楚内存被什么吃了
#7
关于SocketAsyncEventArgs,本人最近也在研究,GC清理的应该是是标志为无用的对象,所以在调用GC前应该是进行这个操作:SocketAsyncEventArgs.SetBuffer(null, 0, 0),没有测试过,内存上涨现象本人也遇过
#1
也有可能垃圾回收机制还没有去回收,测试时候强制调用GC清理下 看看是否内存有降
#2
试过用GC清理了,内存还是没下降!
#3
我用任务管理器看了一下,IO口数量一直在增加,这是什么原因?关闭了socket那资源应该释放了啊
#4
把你认为有问题的代码贴出来才能分析
#5
http://blog.csdn.net/zplove003/article/details/7776518
我是参考这个博客上来写的,我没有改动过,但是内存泄漏的原因我找不到
#6
不提交具体代码没办法帮你分析的,vs顶部菜单》分析》诊断与分析,创建个分析内存的,跑起来泡个半小时你就清楚内存被什么吃了
#7
关于SocketAsyncEventArgs,本人最近也在研究,GC清理的应该是是标志为无用的对象,所以在调用GC前应该是进行这个操作:SocketAsyncEventArgs.SetBuffer(null, 0, 0),没有测试过,内存上涨现象本人也遇过