違いを選択し、投票、ファイルディスクリプタの:IO多重化メカニズム
1.単一プロセスのオープンファイルディスクリプタ(FDファイルハンドル)が矛盾しています
選択:接続の最大数が1024の数を制限するために、単一のプロセスへの接続の最大数はFD_ZETSIZEマクロによって定義されて開くことができます。
投票:投票は、本質的に選択の間に違いはありませんが、それはストアにリンクされたリストに基づいているため、それは、最大接続数を制限しません。
epoll:天井に接続されているが、素晴らしいが、1Gメモリマシンは約100,000の接続を開いて、というようにすることができます。
一貫性のない2.モニターのソケット方式
選択:ポーリング方法、1を1つのソケットにより、過去にチェックするために、線形ソケットの増加は、ポーリング速度は直線的な原因のパフォーマンスの低下が得られ、非常に遅くなり、唯一のアクティブなソケット処理を、見つけました。
世論調査:、少し最適化を選択するだけで、ファイルディスクリプタを変更しますが、リスニングソケットの方法またはポーリングします。
expoll:のepollカーネルの実装は、各FD上のコールバック関数に従って達成され、唯一のアクティブなソケットは、このソケットに対処するためのexpollを通知、コールバックを呼び出すためのイニシアチブをとるだろう。(ソケット接続が処理上急い、アクティブソケットがある場合、コールバック関数は、ファイルディスクリプタを通知する、等価名簿ソケット、ファイルディスクリプタに登録されます)
3.メモリコピーモード(モードメッセージングは)矛盾しています
選択:カーネルは、カーネルモードために、ユーザーモードからデータをコピーする必要性を述べるしたいユーザーにメッセージを渡し、このプロセスは非常に時間がかかり、
世論調査:同上
epoll:ファイルディスクリプタのカーネルとユーザー空間の共有メモリのため、メモリの状態データとユーザデータが共有されている状態