2016-12-07 ruki
此版本主要增加stackless协程模块以及为嵌入式平台增加micro微模块编译(~64K)。 此stackless协程模块比之前的stackfull协程实现更加的轻量高效,切换效率提升5、6倍,在macosx上测试1000w次切换仅需40ms 当然易用性和灵活性上,还是stackfull模式更有优势(tbox两种模式都已支持,接口类似)。 stackless协程使用见:stackless协程使用文档 stackfull协程使用见:stackfull协程使用文档 更多协程服务器demo实现,请参考:协程examples 新特性 针对协程上下文切换,支持mips架构 添加__tb_thread_local__关键字宏 添加 继续阅读 »
2016-11-13 ruki
在分析了各大开源协程库实现后,最终选择参考boost.context的汇编实现,来写tbox的切换内核。 在这过程中,我对boost各个架构平台下的context切换,都进行了分析和测试。 在macosx i386和mips平台上实现协程切换时,发现boost那套汇编实现是有问题的,如果放到tbox切换demo上运行,会直接挂掉。 在分析这两个架构上,boost.context切换实现问题,这边先贴下tbox上的context切换demo,方便之后的讲解: 继续阅读 »
2016-10-28 ruki
简介 Benchbox是一个基准测试包,基于tbox和xmake,里面包含许多针对第三方库功能的性能基准测试和对比,可以很方便的扩展测试用例和模块。 目前内置:各大开源协程库性能基准测试,后续还会陆续增加各种开源库模块的分析测试 测试报告仅供参考,测试代码或者结果上如有问题,可以提交issues 编译 请先安装: xmake 然后运行: bash $ xmake 协程切换测试报告(2个协程) Run bash $ xmake coroutine -n switch Macosx (x86_64) tbox: 10000000 switches in 205 ms, 4 继续阅读 »