轻量级 C 非对称协程库 libaco

Apache
C/C++
跨平台
2018-07-19
hnes

libaco - 一个极速的轻量级 C 非对称协程库。

10 ns/ctxsw + 一千万协程并发仅耗内存 2.8GB + Github Trending

下面是这个项目的简要介绍:

  • 除了一个生产级别的 C 协程库实现,还包含了一个详细的文档描述了如何实现一个 最快且正确 的协程库以及其严格的数学证明

  • 核心实现不超过 700 行代码,包含了一个协程库应该有的全部功能;

  • 在 AWS c5d.large 机器上的性能测试结果指出,一次协程间上下文切换仅耗时 10 ns (独立执行栈);

  • 用户在创建新的协程时,可以选择其拥有一个独占的执行栈,或者是与其它任意数量的协程一起共享一个执行栈;

  • 拥有极致的内存使用效率:一千万个协程并发执行仅消耗 2.8GB 的物理内存( tcmalloc, 每一个协程使用 120B 的复制栈)。

上文中的"最快"指的是在满足 Sys V ABI Intel386 或者 AMD64 约束下最快的上下文切换实现。

原理示意图:

的码云指数为
超过 的项目
加载中

评论(11)

kiki1000
kiki1000
可否提供和Epoll整合的例子啊
liexusong
liexusong
什么是非对称?
卧龙大熊猫
卧龙大熊猫
@开源中国首席C菜鸟 你可以尝试一下
笙歌曼舞
Mark
大大大大泡泡糖
大大大大泡泡糖
6666
开源中国首席C菜鸟
开源中国首席C菜鸟
能否集成 libaco 到PHP的C扩展Xan中??
Carols
Carols
马克
邪恶胖子
邪恶胖子
真心厉害
孤单的不同世界
孤单的不同世界
比goroutine更轻
azeng
azeng
Mark

暂无资讯

暂无问答

汇编与 c/c++ 混合

project(libaco_project C) #支持的编程语言配置 enable_language(ASM) set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER}) set(libaco_src aco.c aco.h acosw.S)......

2018/07/24 14:50
48
0
七月新增开源项目:你学习的速度跟得上前端造轮子的速度吗?

每月新增开源项目。顾名思义,每月更新一期。我们会从社区上个月新收录的开源项目中,挑选出有价值的、有用的、优秀的、或者好玩的开源项目来和大家分享。数量不多,但我们力求推荐的都是精品...

2018/08/12 21:54
5K
6
2018 年度新增开源软件排行榜之国产 TOP 50

2018 年开源中国社区「新增」开源软件排行榜之国产 TOP 50 终于发布了! 榜单根据 2018 年开源中国社区新收录的开源项目的关注度、活跃度,以及所属分类整理而来,相信在一定程度上反映了国内...

01/23 09:43
850
3

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部