Libevは、3つのデータ構造を使用して、さまざまなウォッチャーを格納します。
ヒープ:ev_timerやなどの時間でソートされたウォッチャー用ev_periodic。
リンクリスト:ev_io、、などev_signal。ev_child
配列:ev_prepare、、などev_check。ev_async
ヒープを使用してタイマーウォッチャーを格納することは間違いありません。しかし、リンクリストと配列を選択する基準は何ですか?
ev_ioウォッチャーを格納するデータ構造は少し複雑に見えます。これは最初にfd、インデックスとしての配列であり、配列内の要素はのリンクリストですev_io watcher。リンクリストを要素として使用する場合は、配列にスペースを割り当てる方が便利です。それが理由ですか?
または、の挿入または削除操作ev_ioがより頻繁で、ev_prepareより安定しているように見えるという理由だけで?
または他の理由はありますか?