...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Performance measurements were taken using std::chrono::highresolution_clock
,
with overhead corrections. The code was compiled with gcc-6.3.1, using build
options: variant = release, optimization = speed. Tests were executed on dual
Intel XEON E5 2620v4 2.2GHz, 16C/32T, 64GB RAM, running Linux (x86_64).
Table 1.1. Performance of context switch
callcc()/continuation (fcontext_t) |
callcc()/continuation (ucontext_t) |
callcc()/continuation (Windows-Fiber) |
---|---|---|
9 ns / 19 CPU cycles |
547 ns / 1130 CPU cycles |
49 ns / 98 CPU cycles |