Compress-LZF
view release on metacpan or search on metacpan
perlmulticore.h view on Meta::CPAN
static void perl_multicore_nop (void) { }
So in the case of no magical module being loaded, all calls except the
first are two memory accesses and a predictable function call of an empty
function.
Of course, the overhead is much higher when these functions actually
implement anything useful, but you always get what you pay for.
With L<Coro::Multicore>, every release/acquire involves two pthread
switches, two coro thread switches, a bunch of syscalls, and sometimes
interacting with the event loop.
A dedicated thread pool such as the one L<IO::AIO> uses could reduce
these overheads, and would also reduce the dependencies (L<AnyEvent> is a
smaller and more portable dependency than L<Coro>), but it would require a
lot more work on the side of the module author wanting to support it than
this solution.
=item Low Code and Data Size Overhead
( run in 0.533 second using v1.01-cache-2.11-cpan-3cd7ad12f66 )