sockets réseau AIO et zéro copie sous Linux
Question
J'ai expérimenté avec async sockets réseau Linux (aio_read et al dans aio.h / librt), et une chose que j'ai essayé de savoir est de savoir si ceux-ci sont ou non zéro copie. À peu près tout ce que j'ai lu discute beaucoup fichier E / S, alors que son réseau E / S Je suis intéressé.
AIO est un peu d'une douleur à utiliser et je soupçonne est non-portable, se demandant si si sa valeur persévérant avec elle. Zero-copie est à peu près le seul avantage (albiet un problème majeur pour mes besoins), il aurait plus (sans blocage) sélectionner / epoll ..
La solution
Dans GLIBC, AIO est mis en œuvre en utilisant des threads POSIX et un pread
appel régulier. Il est donc probablement plus cher que select
ou epoll
et faire le read
ou vous recv
.