Сетевые сокеты AIO и нулевое копирование под Linux - PullRequest
6 голосов
/ 04 июня 2010

Я экспериментировал с асинхронными сетевыми сокетами Linux (aio_read и др. В aio.h / librt), и я пытался выяснить, являются ли они нулевыми или нет. Почти все, что я до сих пор читал, обсуждает файловый ввод / вывод, тогда как его сетевой ввод / вывод меня интересует.

Использование AIO немного затруднительно, и я подозреваю, что оно непереносимо, поэтому интересно, стоит ли с ним упорствовать. Нулевое копирование - это почти единственное преимущество (особенно важное для моих целей), которое было бы над (неблокирующим) выбором / эполлом.

1 Ответ

2 голосов
/ 06 июня 2010

В GLIBC AIO реализован с использованием потоков POSIX и обычного pread -звука. Так что это, вероятно, дороже, чем select или epoll и делать read или recv самостоятельно.

...