Мне интересно, есть ли способ измерить время, которое событие асинхронного ввода-вывода, такое как async_read или async_write, потратило в очереди событий завершения io_service до того, как был вызван его обработчик завершения.
Проблема здесь в том, что вы не можете на самом деле пометить время, когда событие было вставлено в очередь io_service, что вы можете сделать, когда сами публикуете работу в io_service - boost :: asio :: io_service длина занятой очереди для таймеров и сообщений
Идея состоит в том, чтобы проверить, оставалось ли событие в состоянии готовности слишком долго. Затем вы можете со временем реагировать на это и динамически увеличивать рабочие потоки.