On Sun, Oct 8, 2023 at 6:51 PM Klemens Morgenstern < klemensdavidmorgenstern@gmail.com> wrote:
async uses symmetric transfer all over the place, which is the main optimization over asio.
Using pmr is not really an optimization, but a customization point one can disable at compile time. I didn't want an allocator template parameter everywhere, so pmr is the standard version of achieving this.
Beside symmetric transfer, async uses a small buffer in the coroutine frame which gets used for the associated allocator of an `co_await async_foo(..., use_op)` expression. Depending on the memory required by the op, that can mean that no allocations take place at all. The upstream of the sbo depends on whether or not PMR is disabled.
That is all wonderful but I think it should go into the documentation, not the list. Thanks