違いを選択し、投票、ファイルディスクリプタの:IO多重化メカニズム

違いを選択し、投票、ファイルディスクリプタの:IO多重化メカニズム

1.単一プロセスのオープンファイルディスクリプタ(FDファイルハンドル)が矛盾しています

選択:接続の最大数が1024の数を制限するために、単一のプロセスへの接続の最大数はFD_ZETSIZEマクロによって定義されて開くことができます。

投票:投票は、本質的に選択の間に違いはありませんが、それはストアにリンクされたリストに基づいているため、それは、最大接続数を制限しません。

epoll:天井に接続されているが、素晴らしいが、1Gメモリマシンは約100,000の接続を開いて、というようにすることができます。

一貫性のない2.モニターのソケット方式

選択:ポーリング方法、1を1つのソケットにより、過去にチェックするために、線形ソケットの増加は、ポーリング速度は直線的な原因のパフォーマンスの低下が得られ、非常に遅くなり、唯一のアクティブなソケット処理を、見つけました。

世論調査:、少し最適化を選択するだけで、ファイルディスクリプタを変更しますが、リスニングソケットの方法またはポーリングします。

expoll:のepollカーネルの実装は、各FD上のコールバック関数に従って達成され、唯一のアクティブなソケットは、このソケットに対処するためのexpollを通知、コールバックを呼び出すためのイニシアチブをとるだろう。(ソケット接続が処理上急い、アクティブソケットがある場合、コールバック関数は、ファイルディスクリプタを通知する、等価名簿ソケット、ファイルディスクリプタに登録されます)

3.メモリコピーモード(モードメッセージングは​​)矛盾しています

選択:カーネルは、カーネルモードために、ユーザーモードからデータをコピーする必要性を述べるしたいユーザーにメッセージを渡し、このプロセスは非常に時間がかかり、

世論調査:同上

epoll:ファイルディスクリプタのカーネルとユーザー空間の共有メモリのため、メモリの状態データとユーザデータが共有されている状態

おすすめ

転載: www.cnblogs.com/846617819qq/p/10973862.html