C++ coroutine examples and library comparisons.
| System |
Compiler |
Status |
| Linux |
GCC |
OK |
| Linux |
Clang |
cppcoro CMake configure error |
| Windows |
MSVC |
OK |
| Windows |
Clang-cl |
cppcoro compile errors |
| ns/op |
op/s |
err% |
total |
benchmark |
| 347.17 |
2,880,445.80 |
3.5% |
0.01 |
cppcoro: simple_tasks |
| 436.46 |
2,291,147.13 |
1.1% |
0.01 |
libcoro: simple_tasks |
| 166.92 |
5,990,983.18 |
0.2% |
0.01 |
manual: simple_tasks |
| 1.20 |
835,937,051.56 |
2.4% |
0.01 |
reference: simple_tasks |
| ns/op |
op/s |
err% |
total |
benchmark |
| 154.23 |
6,484,003.01 |
1.2% |
0.01 |
cppcoro: fibonacci |
| 170.62 |
5,861,059.36 |
0.6% |
0.01 |
libcoro: fibonacci |
| 69.64 |
14,358,785.65 |
0.5% |
0.01 |
manual: fibonacci |
| 7.50 |
133,337,000.68 |
0.9% |
0.01 |
reference: fibonacci |
| ns/op |
op/s |
err% |
total |
benchmark |
| 3,988.80 |
250,701.77 |
1.2% |
0.01 |
cppcoro generator: finite_counter (iterator) |
| 3,991.27 |
250,546.83 |
1.8% |
0.01 |
cppcoro generator: finite_counter (range-for) |
| 3,805.26 |
262,793.91 |
0.3% |
0.01 |
cppcoro generator: infinite_counter |
| 3,677.57 |
271,918.68 |
1.3% |
0.01 |
libcoro generator: finite_counter (iterator) |
| 3,745.11 |
267,014.66 |
2.0% |
0.01 |
libcoro generator: finite_counter (range-for) |
| 3,218.10 |
310,742.54 |
1.1% |
0.01 |
libcoro generator: infinite_counter |
| 3,141.80 |
318,288.55 |
0.4% |
0.01 |
manual generator: finite_counter (iterator) |
| 3,013.14 |
331,879.39 |
0.8% |
0.01 |
manual generator: finite_counter (range-for) |
| 3,327.68 |
300,509.34 |
1.5% |
0.01 |
manual generator: finite_counter |
| 2,920.77 |
342,375.29 |
2.1% |
0.01 |
manual generator: infinite_counter |
| 242.25 |
4,127,918.19 |
4.0% |
0.01 |
reference generator: finite_counter |
| 236.82 |
4,222,689.08 |
1.3% |
0.01 |
reference generator: infinite_counter |
| 3,680.00 |
271,739.13 |
0.9% |
0.01 |
std::generator: finite_counter (iterator) |
| 3,634.17 |
275,166.05 |
0.2% |
0.01 |
std::generator: finite_counter (range-for) |
| 3,277.56 |
305,104.64 |
0.1% |
0.01 |
std::generator: infinite_counter |
| 3,669.04 |
272,550.92 |
2.0% |
0.01 |
concurrencpp generator: finite_counter (iterator) |
| 3,888.67 |
257,157.55 |
0.9% |
0.01 |
concurrencpp generator: finite_counter (range-for) |
| 3,334.95 |
299,854.44 |
0.9% |
0.01 |
concurrencpp generator: infinite_counter |