同事测试了libcoro,它的linux版本可以使用4种模式,切换效率分别为:
asm: 50,000,000 switch/s
setjmp/longjmp: 42,000,000 switch/s
ucontext: 2,400,000 switch/s
pthread: 50,000 switch/s
asm版本保存的寄存器比较少,居然达到了5千万次每秒,可能和测试时线程数较少有关,不过也足够高了,准备再测试一下大量线程切换效率,再把现有项目换上去测试一下~
asm: 50,000,000 switch/s
setjmp/longjmp: 42,000,000 switch/s
ucontext: 2,400,000 switch/s
pthread: 50,000 switch/s
asm版本保存的寄存器比较少,居然达到了5千万次每秒,可能和测试时线程数较少有关,不过也足够高了,准备再测试一下大量线程切换效率,再把现有项目换上去测试一下~