Сетевые розетки AIO и нулевая копия под Linux
Вопрос
Я экспериментировал с Async Network Sockets (AIO_READ и др. В AIO.H/LIBRT), и одна вещь, которую я пытался выяснить, это то, нульны или нет. Практически все, что я читал до сих пор обсуждает файл ввод -вывод, тогда как его сетевой ввод -вывод меня/вывода.
AIO-это немного боли, и я подозреваю, что не заслуживает портации, поэтому интересно, стоит ли это настойчиво. Нулевая копия-это почти единственное преимущество (Albiet главным для моих целей), оно было бы над (не блокировка) Select/Epoll ..
Решение
В GLIBC AIO реализован с использованием потоков POSIX и обычного pread
-вызов. Так что это, вероятно, дороже, чем select
или же epoll
и делать read
или же recv
самим собой.
Не связан с StackOverflow