
Linuxシステムコールepoll_ctl
(at fs/eventpoll.c
)ウォッチリストと呼ばれるRed-Blacktreeを使用して、ファイル記述子イベントに対する関心を作成、削除、または変更します。ウォッチ・リスト見つかりませんepoll_wait
、より正確にはのコールバックを待ちます。poll
(存在するinclude/linux/poll.h
)。したがって、epoll
関心のあるファイル記述子イベントを受信する実行時間は、接続数に基づいてO(1)です。N。ただし、レッドブラックツリーを使用しているため、ウォッチリストにファイル記述子を追加、変更、または削除するのにかかる時間の複雑さはO(log(n))です。
ハッシュテーブルは結合の追加と削除と結合の使用に対してO(1)パフォーマンスを提供できますが、なぜRed-Blackツリーを使用してウォッチリストを実装するのですか?妥協は何ですか?