原打算分布式平台先使用异步编程方式来完成的,轻量级线程的实现以后再做个协议兼容的改造,后来发现现有项目的同步逻辑的代码要改成异步回调方式,改的东西太多,所以最近几星期把轻量级线程方式先实现了。测试结果还算理想,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++的语法特性。原以为这个平台做完以后现有代码修改较多,目前看来仅有少量修改即可,代码编写比异步回调方式容易多了。
分享到:
相关推荐
在项目快完成的时候,介绍的那个人跑路了,所以就没有后续了,想着与其直接删除还不如开源分享给大家一起讨论学习。 这个项目的经历也让作者明白了一些事情,就是如果别人委托自己帮做项目的时候,不管项目的规
在项目快完成的时候,介绍的那个人跑路了,所以就没有后续了,想着与其直接删除还不如开源分享给大家一起讨论学习。 这个项目的经历也让我明白了一些事情,就是如果别人委托自己帮做项目的时候,不管项目的规模如何...
1. **案例一**:基于给定的活动历时表,我们需要找出关键路径以确定项目的最快完成时间,并考虑采取何种措施来进一步缩短项目工期。 - **解答**:根据网络图绘制及关键路径分析,本项目的最快完成时间为12周。为了...
本文将详细介绍如何使用Automake和Autoconf来完成大型项目的编译配置。 Automake和Autoconf是GNU开源项目中的两个主要工具,用于帮助开发者快速生成Makefile文件,从而简化编译过程。 标题:编译利器之大型项目如何...
变更请求分析、影响分析、考虑的解决方案、工作量估算、可能的开始实施日期、可能的期望完成日期、影响程度等,这些信息能够帮助项目团队对变更请求进行深入的分析和评估,确定变更请求的可行性和必要性。...
项目部署文档标准样例(使用Ant 5分钟完成Web项目部署) 本文档旨在提供一个标准的项目部署文档,使用Ant工具,可以在5分钟内完成Web项目的部署。整个部署过程分为四大步骤:系统要求、软件环境、部署步骤和数据源...
* 完成进度的重要性:完成进度是项目建设工作汇报的重要组成部分,能够帮助项目经理和团队成员了解项目的完成情况、存在的问题和解决方案等信息。 * PPT模板的作用:PPT模板能够帮助项目经理和团队成员快速生成高...
- 义务:合理使用资源,控制项目进程,处理内外关系,督导培训项目社工,确保项目按时完成。 6. **项目社工职责**: - 任期:从项目立项到完成验收。 - 职责:配合项目负责人,监督项目实施,提出优化建议,解决...
项目进度状态表是一个详尽的记录,展示了项目各个阶段、任务和活动的完成情况。它通常包括以下关键元素: 1. **任务列表**:列出项目的所有任务,每个任务都有唯一的标识符,便于跟踪。 2. **任务描述**:简述每个...
在Excel模板技改项目完成投资财务清单中,我们可以深入探讨几个关键的知识点,这些知识点对于理解和管理企业项目投资至关重要。首先,"技改项目"通常指的是技术改造项目,旨在通过改进现有设备、工艺或系统来提升...
在项目管理中,有效的沟通是确保项目成功的...通过制定和遵循一套有效的项目汇报流程,可以提高项目管理的效率,确保项目按照预定的时间表和预算顺利完成,同时减少沟通障碍,增强团队合作,最终提升项目成功的可能性。
首先,IT项目管理的目标是确保项目能够按时、按预算、按质量地完成,同时满足业务需求和用户期望。这需要项目经理具备良好的技术理解能力、沟通协调技巧以及风险管理策略。 在项目启动阶段,项目经理需要明确项目的...
通过遵循这些模板,项目团队可以更好地预测和控制项目风险,确保项目按时、按预算、按质量完成。此外,模板还能帮助新加入团队的成员快速适应项目,促进团队协作。 在实际操作中,项目经理可以根据具体项目需求调整...
项目验收是项目管理过程中的一个重要环节,它标志着项目的完成和交付。一份详尽的项目验收PPT目录可以帮助评审人员全面了解项目的执行情况,从而做出是否通过验收的决定。以下是根据提供的内容,对项目验收PPT目录的...
环保行业重大事件快评:PPP项目库清理完成,环保行业受影响有限.pdf
3. 项目范围说明书:详细定义项目将完成的工作,包括功能需求、非功能需求等。 4. WBS(工作分解结构):将项目任务分解成可管理的小单元,便于分配责任和跟踪进度。 5. 甘特图:通过图形化方式展示项目计划,包括...
项目开发组决定运用Microsoft Project软件高效地管理项目开发过程,该OA产品要求从2013年3月11日起建设,并在2013年7月1日之前正式上线,并且工作越快开展越好。 项目管理过程 项目管理过程可以分为五个阶段:策划...
《Unity恐龙快跑游戏项目详解》 Unity,作为全球最流行的跨平台游戏开发引擎之一,以其强大的3D和2D渲染能力、丰富的内置资源库以及易学易用的C#编程语言,深受游戏开发者喜爱。在这个名为“Unity恐龙快跑”的项目...