Я использую boost :: asio для обработки моего асинхронного tcp-запроса, но я обнаружил, что вызов boost :: asio :: async_write занимает сотни микросекунд каждый раз.Я думаю, что это просто помещение данных в буфер отправки TCP.Почему это так долго?спасибо всем!
==== 227 do_write_impl
==== 274 do_write_impl
==== 238 do_write_impl
==== 60 do_write_impl
====220 do_write_impl
==== 229 do_write_impl
==== 368 do_write_impl
==== 189 do_write_impl
==== 221 do_write_impl
==== 234 do_write_impl
1013 *
auto b = boost::asio::buffer(msg_send->get_header(), length);
auto f = [self, this] (const bsys::error_code& e, std::size_t bytes_trans) { handle_write_impl(e, bytes_trans); };
struct timeval tv1 {0, 0};
struct timeval tv2 {0, 0};
gettimeofday(&tv1, nullptr); const auto beg = tv1.tv_sec * 1000000 + tv1.tv_usec;
boost::asio::async_write(socket_,
b,
f
);
gettimeofday(&tv2, nullptr); const auto end = tv2.tv_sec * 1000000 + tv2.tv_usec;
std::cout << " ==== " << (end - beg) << " do_write_impl " << std::endl;