epoll이 해시 테이블 대신 파일 설명자를 관리하기 위해 레드-블랙 트리를 사용하는 이유는 무엇입니까?

epoll이 해시 테이블 대신 파일 설명자를 관리하기 위해 레드-블랙 트리를 사용하는 이유는 무엇입니까?

리눅스 시스템 호출epoll_ctl(at fs/eventpoll.c) 관심 목록이라는 레드-블랙 트리를 사용하여 파일 설명자 이벤트에 대한 관심을 생성, 삭제 또는 수정합니다. 관심 목록찾을 수 없음epoll_wait, 보다 정확하게는의 콜백을 기다립니다.poll(존재하다 include/linux/poll.h). 따라서 epoll관심 있는 파일 설명자 이벤트를 수신하는 실행 시간은 연결 수 기준으로 O(1)입니다.N. 그러나 레드-블랙 트리를 사용하기 때문에 관심 목록에 파일 설명자를 추가, 수정 또는 삭제하는 데 드는 시간 복잡도는 O(log(n))입니다.

해시 테이블이 조인 추가 및 제거와 조인 사용에 대해 O(1) 성능을 제공할 수 있는데 왜 레드-블랙 트리를 사용하여 관심 목록을 구현합니까? 절충안은 무엇입니까?

관련 정보