07.01.2014 20:50, Niall Douglas:
provides some performance tests for context switching. Sure. But it's a "why should I use this library?" sort of thing? If I see real world benchmarks for a library, it tells me the author has
boost.fiber uses boost.coroutine (which itself uses boost.context) and probably done some performance tuning. That's a big tick for me in considering to use a library.
I made micro benchmark of Boost.Coroutine some time ago. I was able to run 400k coroutines in one thread, each had 10KiB of stack (~3.8GiB was consumed only by stacks). I used simple allocator for stacks: return last_free += allocation_size; Environment was: Windows 7 x64, MSVC2010SP1 x64, Boost 1.53. System had 6GiB of RAM, part of which was consumed by OS and background programs. I think with proper tuning it is possible to launch more coroutines on that system. -- Evgeny Panasyuk