原打算分布式平台先使用异步编程方式来完成的,轻量级线程的实现以后再做个协议兼容的改造,后来发现现有项目的同步逻辑的代码要改成异步回调方式,改的东西太多,所以最近几星期把轻量级线程方式先实现了。测试结果还算理想,ucontext的切换效率在超过200万/秒,erlang在我测试的相同机器上非smp版本720万/秒,smp版本不到200万/秒,切换性能的确有差距,不过目前看来是足够用了。还没有去实现Lock-free的SMP版本,目前用的是线程池来跑多线程逻辑,需要多线程跑的部分只需要主动把当前轻量级线程切到线程池中,运行完那部分再切回来就可以了。IO部分把aio和event系统结合起来了,所以虽然是在单线程程序中执行,但文件读写部分并不是阻塞的。
使用erlang会有不少阻力,虽然过去曾经宣传过不少,项目组基本上也都知道这个东西,但用它做项目特别是改造现有项目,工作量还是大了些。用C++实现的分布式平台对现有代码兼容较好,对轻量级线程不友好的逻辑(占用栈过大,有阻塞等),可以简单地加一个线程池切换,和Eurasia的做法相似。
目前完成了actor模型(轻量级线程、send/receive及超时语义,进程注册等),socket模块,分布式模型(和erlang的node相似),aio整合,Future(参见IoLanguage,好玩的东东),由于使用C++开发,不用忍受Erlang的FP语法,还可以使用C++的语法特性。原以为这个平台做完以后现有代码修改较多,目前看来仅有少量修改即可,代码编写比异步回调方式容易多了。
分享到:
相关推荐
在项目快完成的时候,介绍的那个人跑路了,所以就没有后续了,想着与其直接删除还不如开源分享给大家一起讨论学习。 这个项目的经历也让作者明白了一些事情,就是如果别人委托自己帮做项目的时候,不管项目的规
在项目快完成的时候,介绍的那个人跑路了,所以就没有后续了,想着与其直接删除还不如开源分享给大家一起讨论学习。 这个项目的经历也让我明白了一些事情,就是如果别人委托自己帮做项目的时候,不管项目的规模如何...
环保行业重大事件快评:PPP项目库清理完成,环保行业受影响有限.pdf
资源名:用神经网络实现手写识别_建立Bp神经网络_采用快速训练方法_快速完成一类相关手写字体的模式识别_手写字符识别_matlab 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功...
CollaboRate-众包流程和软件... 反过来,这将使项目快速完成。 这也将允许开源项目的快速完成。 对于“封闭源”项目,当大量人在同一个项目上工作时,代码安全性是一个问题。 CollaboRate提供足够的代码安全性,以便大
项目管理系统界面高清截图http://yaerfeng1989.blog.163.com相册。绝版作品!一切都只是曾经,神马都是浮云!现将其开源 ssh+jquery+servlet+json+dwr+ajax....... 数据库可配置。默认mysql。运行先改jdbc....
资源:指完成项目所需要的人、财、物。 时间:指项目有明确的开始和结束时间。 客户:指提供资金、确定需求并拥有项目成果的组织或个人。 目标:满足要求的产品、服务或成果,并且有时它们是不可见的。 项目的特点...
相信大家都有一个共同的感受,就是企业所能提供的人力资源相对于要完成的众多项目而言,总是不够的,不同层次的项目管理人员都会不同程度地感到身处困境,承受着来自各方面的巨大压力,多项目人力资源调配已经成为...
系统集成项目管理工程师计算题讲解2
给大家分享以下我是如何部署 SpringBoot + Vue 前后端分离的项目的,我用的 Linux 发行版是 CentOS7.5 有了一个基于 ElementUI 的电商后台管理系统,在开发一个相似的后台就会轻松很多。不过前面的系统的后端是使用 ...
dsp开发手册教程,编程说明,内容详细,深入学习28335开发原理,更快速的上手及完成项目开发
本项目适合IT相关专业各种计算机技术的源代码和项目资料,如计科、人工智能、通信工程、自动化和电子信息等的在校学生、老师或者企业员工下载使用。 也适合小白学习进阶,可以用作比赛项目、可以进行项目复刻去参加...
点击、按住并拖动物体到相同物体上,即可完成合成的操作,注意屏幕上方的目标,达成目标即可过关。是一个经典的合成类小游戏,默认共配置了10关。 特点: 1 简洁明了的代码书写 2 方便快捷的关卡配置。提供了一个...
从管理的角度来讲,当然是尽可能的赶上计划的发布时间,或者尽可能快的完成项目。但是因为多方面因素的影响,项目管理是一个欲速则不达的过程。如果这个计划发布日期早于这个实际合理发布日期,那你越往这个不合理的...
通过结合多种工具和方法开展有效的质量保证、控制,确保项目工作有序进行,符合质量标准、满足客户需求,能够按时保质保量的完成。 正文 随着移动通信业务的快速发展,行业竞争的日益加剧,电信运营商的网络服务质量...
下述检查表包括有关设计周期的各个方面,对于特殊的应用还应增加另外一些项目。包括:通用PCB设计图检查项目、PCB电气特性检查项
1.给大家带来一款语音识别软件,想做智能识别语音设备或者想给项目增加功能的同学可以看下2.这款软件是使用python写的,其实开发语言无所谓用其他语言也可以写3.代码还是挺简单的
目标分析 为了使数据中心能够更快更高质量落地,需要完善团队人员 为了提升数据中心的产品质量,需要完善团队人员 大数据项目组人员配置全文共27页,当前为第6页。 03 出发点 大数据项目组人员配置全文共27页,当前...
生成后的功能有增、删、改、查、导出excel等等,只需作少许改动就可以完成多种常用项目,大大提高你的工作效率,而且是带ext功能的,大量用到了ajax技术。我接了十多个项目全是用它做的,客户非常满意。现免费给大家...
ExpressTutorial 完成快速教程的项目