最近,我们干了一件“惊天动地”的事——对改了十年、代码混乱无比、WebForms与MVC混血、ADO.NET与Entity Framework混合的博客程序,用.NET 4.5的async/await特性进行了异步化改造。主要的异步化改造已于昨天完成,并在昨天晚上发布了异步化改造后的博客程序 ...
月 日我们发布了异步化改造后的博客程序之后,出现了高内存 高CPU 高线程数的不理想情况。 经过一周的追查,终于水落日出 引起不理想情况的根源是我们修改过的EnyimMemcached代码存在内存泄漏问题。 而造成内存泄漏的根源是我们没有对SocketAsyncEventArgs进行Dispose,实际情况是我们当时根本没注意到SocketAsyncEventArgs实现了IDispose接口, ...
2014-07-06 18:58 17 4268 推荐指数:
最近,我们干了一件“惊天动地”的事——对改了十年、代码混乱无比、WebForms与MVC混血、ADO.NET与Entity Framework混合的博客程序,用.NET 4.5的async/await特性进行了异步化改造。主要的异步化改造已于昨天完成,并在昨天晚上发布了异步化改造后的博客程序 ...
走进异步编程的世界 - 剖析异步方法(上) 序 这是上篇《走进异步编程的世界 - 开始接触 async/await 异步编程》(入门)的第二章内容,主要是与大家共同深入探讨下异步方法。 本文要求了解委托的使用。 目录 介绍异步方法 控制流 await ...
走进异步编程的世界 - 开始接触 async/await 序 这是学习异步编程的入门篇。 涉及 C# 5.0 引入的 async/await,但在控制台输出示例时经常会采用 C# 6.0 的 $"" 来拼接字符串,相当于string.Format() 方法。 目录 ...
走进异步编程的世界 - 在 GUI 中执行异步操作 【博主】反骨仔 【原文地址】http://www.cnblogs.com/liqingwen/p/5877042.html 序 这是继《开始接触 async/await 异步编程》、《走进异步编程的世界 - 剖析异步方法》后 ...
走进异步编程的世界 - 剖析异步方法(下) 序 感谢大家的支持,这是昨天发布《走进异步编程的世界 - 剖析异步方法(上)》的补充篇。 目录 异常处理 在调用方法中同步等待任务 在异步方法中异步等待任务 Task.Delay() 暂停执行 ...
C#中一个对象的函数, 如果被引用了, 也会导致对象无法被回收, 虽然实际使用中几率很小, 还是记录一下. 创建一个对象, 把对象的Call方法加到Action上, 然后置空引 ...
我后来加大了client的连接/断开的次数(500,1000),Server端的连接被释放了。 这说明: 1. 此代码是 可以正常工作的。 2.TcpListener/TcpListen ...
在上周解决“博客程序异步化改造之后遭遇的性能问题”的过程中,我们干了一件自以为很有成就感的事——在表现层(MVC与WebForms)将所有使用await的地方都加上了ConfigureAwait(false),比如下面代码: 干完之后才恍然大悟,我们“出色”地完成了一件傻事,性能 ...