Mono 3.2.3 Socket功能迎来一稳定的版本
由于兴趣自己业余时间一直在搞.net下面的通讯应用,mono的存在得以让.NET程序轻松运行在Linux之下.不过经过多尝试Socket相关功能在Mono下的表现并不理想.不管性能还是吞吐能力方面离我想要的有比较大的差距.最后一次在2.10.x下测试情况下也比失望,主要是在连接数多数据交互量大的情况下会导致异步send操作虽然成功但会存在数据发送不出去的情况,这情况在应用中显然是不允许发生的;虽然发送可以用同步解决,但连接多的情况同步显然容易导致其他连接处理上存在延时,最终打消了在Mono做通讯的想法.
最近Mono发布了新的版3.2.3看了一下感觉不错,顺便也下载了mono的源代码下来看了一下
// Actual send() done in the runtime
if (result.error == 0) {
UpdateSendValues (result.Total);
if (result.Sock.disposed) {
result.Complete ();
return;
} if (result.Size > 0) {
Socket.socket_pool_queue (Worker.Dispatcher, result);
return; // Have to finish writing everything. See bug #74475.
}
result.Total = send_so_far;
send_so_far = 0;
}
result.Complete ();
发现早期版本SocketAsyncEventArgs存在发送不完整需要自己处理的情况在现有版本代码已经解决,于是就又提起对mono的兴趣.
这次装了mono 3.2.3进行了一个简单的持久压力测试,的确之前碰到有个别情况数据没发送出去的问题已经解决了.虽然性能和WINDOWS下比起来还有段距离,不过总的来说还可以接受.以下是测试截图.

测试大概是在1K个连接的基础上进行了大概2亿次的数据交互,每秒的请求交互量大概在1w左右. 测试服务端配置:
cpu:一个核的虚机
操作系统:Centos 6.5 64
内存:1G
mono 3.2.3
在整个测试过程CPU大概占用了60-70之间.从测试结果来看,mono这版的socket处理能力还算可以接受的,希望mono团队在下个版本做得更出色.
Mono 3.2.3 Socket功能迎来一稳定的版本的更多相关文章
- 相机拍照功能之权限和Android版本问题
代码改变世界 相机拍照功能之权限和Android版本问题 对于Android 6.0之前,想要使用系统的相机进行拍照,那么只要在AndroidManifedt.xml中进行添加相应的权限,主要是两个: ...
- (分享)多功能 PDF转换器v3.0版本
转换的效果非常不错,值得使用.破解成功的截图:这个程序必须随便输入注册码注册,不然会有水印的. 这是程序主界面了 正在测试pdf转word过程,转换结果个人感觉非常不错,跟原版pdf的格式非常接近,个 ...
- Mysql的with rollup分组统计功能(5.1以上版本)
RollUp是上卷功能,类似于数据挖掘中的上卷操作. ROLLUp的功能和Order by功能是互斥的. mysql> SELECT year, SUM(profit) FROM sales G ...
- c++ Socket客户端和服务端示例版本三(多线程版本)
客户端 #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <sys/soc ...
- c++ Socket客户端和服务端示例版本二
客户端 #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <sys/soc ...
- c++ Socket客户端和服务端示例版本一
客户端 #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <sys/soc ...
- Flex AIR应用拍照功能(Android和IOS版本)
说明: 使用AIR处理拍照后的回调.照片文件的保存功能时,针对于IOS和Android两个平台是有所不同的. 但.关于如何调用摄像头进行拍照这个功能,Android和IOS是一致的. 技术实现: 1) ...
- Socket也有专门的Unicode版本
https://www.chilkatsoft.com/refdoc/wcppCkSocketWRef.html https://www.chilkatsoft.com/refdoc/vcCkSock ...
- 我的主站 SHARELIST -分享列表 (功能持续完善中 2019-11-24 版本0.3)
网站地址: http://www.sharelist.link 网站地址二维码: 网站介绍和更新: http://106.13.105.156/sharelist.php?listid=5dbda96 ...
随机推荐
- 【趣事】用 JavaScript 对抗 DDOS 攻击 (下)
上一篇:http://www.cnblogs.com/index-html/p/js-network-firewall.html 对抗 v2 之前的那些奇技淫巧,纯属娱乐而已,并不能撑多久. 但简单. ...
- ASP.NET Core 1.1.0 Release Notes
ASP.NET Core 1.1.0 Release Notes We are pleased to announce the release of ASP.NET Core 1.1.0! Antif ...
- 了解PHP中的Array数组和foreach
1. 了解数组 PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.详细的解释可参见:PHP.net中的Array数组 . 2.例子:一般的数组 这里,我 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(71)-微信公众平台开发-公众号管理
系列目录 思维导图 下面我们来看一个思维导图,这样就可以更快了解所需要的功能: 上一节我们利用了一个简单的代码例子,完成了与微信公众号的对话(给公众号发一条信息,并得到回复) 这一节将讲解公众号如何设 ...
- WebGIS中等值面展示的相关方案简析
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 等值面是气象.环保等相关项目上常用到的效果展示.在传统的CS项 ...
- 【用户交互】APP没有退出前台但改变系统属性如何实时更新UI?监听系统广播,让用户交互更舒心~
前日,一小伙伴问我一个问题,说它解决了半天都没解决这个问题,截图如下: 大概楼主理解如下: 如果在应用中有一个判断wifi的开关和一个当前音量大小的seekbar以及一个获取当前电量多少的按钮,想知道 ...
- 前端性能优化的另一种方式——HTTP2.0
最近在读一本书叫<web性能权威指南>谷歌公司高性能团队核心成员的权威之作. 一直听说HTTP2.0,对此也仅仅是耳闻,没有具体研读过,这次正好有两个篇章,分别讲HTTP1.1和HTTP2 ...
- Unity3D 5.3 新版AssetBundle使用方案及策略
1.概览 Unity3D 5.0版本之后的AssetBundle机制和之前的4.x版本已经发生了很大的变化,一些曾经常用的流程已经不再使用,甚至一些老的API已经被新的API所取代. 因此,本文的主要 ...
- Java进击C#——前言
本章简言 记得三年前笔者来到现在的公司的时候,公司人口不出十个人.那个时候笔者刚从日本回来,想在福州.厦门.青岛找一个合适自己发展的机会.最后我的一个福州的朋友打电话希望我能过去帮他,跟他一起创业.这 ...
- PHP设计模式(三)抽象工厂模式(Abstract Factory For PHP)
一.什么是抽象工厂模式 抽象工厂模式的用意为:给客户端提供一个接口,可以创建多个产品族中的产品对象 ,而且使用抽象工厂模式还要满足以下条件: 系统中有多个产品族,而系统一次只可能消费其中一族产品. 同 ...