libaco 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
libaco 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
libaco 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
libaco 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
libaco 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !

软件简介

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 约束下最快的上下文切换实现。

原理示意图:

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (11)

加载中
打分: 力荐
可否提供和Epoll整合的例子啊
2018/11/13 09:38
回复
举报
什么是非对称?
2018/08/01 14:32
回复
举报
@开源中国首席C菜鸟 你可以尝试一下
2018/07/23 18:27
回复
举报
Mark
2018/07/23 09:27
回复
举报
6666
2018/07/23 09:00
回复
举报
能否集成 libaco 到PHP的C扩展Xan中??
2018/07/22 15:41
回复
举报
马克
2018/07/22 14:27
回复
举报
真心厉害
2018/07/22 14:16
回复
举报
比goroutine更轻
2018/07/22 13:49
回复
举报
Mark
2018/07/22 13:16
回复
举报
更多评论
暂无内容
发表了博客
2018/07/24 14:50

汇编与 c/c++ 混合

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

0
0
2018/08/12 21:54

七月新增开源项目:你学习的速度跟得上前端造轮子的速度吗?

每月新增开源项目。顾名思义,每月更新一期。我们会从社区上个月新收录的开源项目中,挑选出有价值的、有用的、优秀的、或者好玩的开源项目来和大家分享。数量不多,但我们力求推荐的都是精品。目前这些开源项目主要来源于编辑们的搜集和用户的投递,所以如果你有更好的开源项目推荐,欢迎积极投递。 戳这里查看投递软件的正确姿势 >>> https://www.oschina.net/question/2918182_2266982。 Web 开发 — Web 不死!Web 永存! ...

1
12
发表了博客
2019/04/10 10:10

再谈协程

如果你对以下几个问题有疑问,那么本文可能会有所帮助。 什么是协程,或者说为什么会有协程这个概念? 怎么用?什么时候需要用? 都有并行的意味,那么协程和多线程有什么区别?两者能否相互替代? 协程底层的实现原理。 1.2.3 谈协程绕不开线程,按传统还得从进程谈起,不过我想业内人员对进程和线程应该是耳熟能详,这里就简单概括下。 进程拥有自己独立的堆和栈,既不共享堆,亦不共享栈,进程由操作系统调度;线程拥有自己独...

0
0
发表于程序人生专区
2018/08/29 08:21

《HelloGitHub》第 29 期

公告 月刊现已支持 RSS 订阅 《HelloGitHub》第 29 期 兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣、入门级的开源项目。 这是一个面向编程新手、热爱编程、对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编程语言的项目、让生活变得更美好的工具、书籍、学习笔记、教程等,这些开源项目大多都是非常容易上手,而且非常 Cool。主要是希望大家能动手用起来,加入到开源社区中。 会编程的可以...

0
0
发表了博客
2018/08/29 08:21

《HelloGitHub》第 29 期

公告 月刊现已支持 RSS 订阅 《HelloGitHub》第 29 期 兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣、入门级的开源项目。 这是一个面向编程新手、热爱编程、对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编程语言的项目、让生活变得更美好的工具、书籍、学习笔记、教程等,这些开源项目大多都是非常容易上手,而且非常 Cool。主要是希望大家能动手用起来,加入到开源社区中。 会编程的可以...

0
0
发表了博客
2019/01/23 09:43

2018 年度新增开源软件排行榜之国产 TOP 50

2018 年开源中国社区「新增」开源软件排行榜之国产 TOP 50 终于发布了! 榜单根据 2018 年开源中国社区新收录的开源项目的关注度、活跃度,以及所属分类整理而来,相信在一定程度上反映了国内大部分开发者在 2018 年所使用的技术栈和希望学习的技术。 可以看到,Java 相关框架一如既往地占据了榜单的很大一部分,而随着 AI 技术在近两年的兴起,也诞生了更多的人工智能开源项目。无论是公司或者个人,都在该领域下产出了不少优秀...

0
7
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
11 评论
111 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部