原打算分布式平台先使用异步编程方式来完成的,轻量级线程的实现以后再做个协议兼容的改造,后来发现现有项目的同步逻辑的代码要改成异步回调方式,改的东西太多,所以最近几星期把轻量级线程方式先实现了。测试结果还算理想,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项目的部署。整个部署过程分为四大步骤:系统要求、软件环境、部署步骤和数据源...
基于YOLOV5 的ROS2功能包,可以快速完成物体识别与位姿发布源码+详细文档 +全部资料+高分项目.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试...
* 完成进度的重要性:完成进度是项目建设工作汇报的重要组成部分,能够帮助项目经理和团队成员了解项目的完成情况、存在的问题和解决方案等信息。 * 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恐龙快跑”的项目...