boost :: asio :: async_write () против boost :: asio :: write () - PullRequest
7 голосов
/ 18 января 2012

Есть ли какое-то преимущество с точки зрения времени, необходимого для вывода буфера данных на провод? если вы используете

boost::asio::write(m_socket, asio::buffer(dataOut_, len), asio::transfer_all());

вместо

boost::asio::async_write(m_socket, boost::asio::buffer(hbs, sizeof(hbs)),
                         boost::bind(&Client::handle_pulse, this,
                         boost::asio::placeholders::error,
                         boost::asio::placeholders::bytes_transferred));

1 Ответ

2 голосов
/ 18 января 2012

Большая разница в том, что обычный write может блокировать, пока все не будет записано, в то время как async_write немедленно возвращается и вызывает обратный вызов, когда либо все данные записаны, либо возникает ошибка.

Я сомневаюсь, что есть заметная разница во времени между вызовом и фактической передачей данных по проводам.

...