I've been using asio for a while in my projects for a while, and it has been working very well for my purposes so far --- however, I've found that it sometimes isn't able to fully utilize/saturate my computer's capabilities (eg, iperf reports that local TCP has a bandwidth of around 14 GBps, but asio only manages around 5 GBps). Therefore, I was wondering if the fact I don't explicitly run the event loop could play a part in it (since events may not be handled as quickly as possible --- or not, I have no idea how asio works under the hood) --- the only parts I use are asio::read and asio::write.