poll/epollの違い
pollだと
pollの呼び出しごとに監視する配列を毎回ユーザ空間→カーネルへコピーして全件走査するため$ O(n) の計算量がかかる
ソケット?の待ち状態、ブロッキングが発生する
POSIXで定義されているのでいろいろな環境で使える レベルトリガー(LT)のみ
レベルトリガーは、ファイルディスクリプタが読み取り可能になったらイベント通知が来続ける
epollだと
ファイルディスクリプタの監視が$ O(1) の計算量で実施できる
IOのブロッキングがないので並列化できる?
カーネル空間にファイルディスクリプタを作るので早い?
ファイルディスクリプタの監視をカーネル空間で行っている
エッジトリガー(ET)、レベルトリガー(LT)の両方が使える
エッジトリガーは、ファイルディスクリプタが読み取り可能になったときに1回だけイベント通知が行く
確認用
Q. pollとは
Q. epollとは
Q. poll,epollの違い
参考
関連
メモ