码迷,mamicode.com
首页 > 其他好文 > 详细

IOKING MsgEngine无锁消息引擎(no-lock)

时间:2015-04-09 21:56:40      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:



关键词:

no-lock interlocked lock-free tcp/ip server engine iocp server out-of-orderexecution无锁 原子锁 原子操作 原子指令 锁无关 开放锁 通讯服务器 引擎 高并发 大数据 搜索引擎 完成端口服务器 cpu乱序并行执行 内存栅栏


IOKING MsgEngine无锁消息引擎(no-lock)


Demo下载链接:

http://download.csdn.net/detail/guestcode/8579089


这是继无锁iocp通讯模块以后,又一个无锁模块。本来已经早已成型,一直没有理会太多。下一步有时间将会把两个整合在一起。

先给无锁定义吧,无锁:在非内核态、非CPU原子操作指令(包括不使用内存栅栏)的情况下实现的线程间消息通讯的机制(个人定义,并仅在本文有效)。


无锁关键是避免CPU乱序并行运行导致的数据错误,即避免脏读情况。


这是无锁测试截图:

技术分享

每秒1400万次消息传递,两个小时1000亿,内核使用率明显很低


这是iocp(实际是有锁的)消息通讯的截图:

技术分享

每秒230万,也是相当不错了,不过内核高了。


以上是理想状态下的单纯消息通讯测试,不代表实际使用环境,难免有出入。至于安全性还有待以后有时间进一步测试。

欢迎共同探讨。


IOKING MsgEngine无锁消息引擎(no-lock)

标签:

原文地址:http://blog.csdn.net/guestcode/article/details/44964951

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!