linux 용 timerfd (timerfd_create)를 사용하면 Timer_Heap 또는 Timer_Wheel보다 성능이 향상되는지 궁금합니다. 분명히 이것은 매우 높은 수준의 질문이며 모든 프레임 워크에서 사용되는 것을 본 유일한 곳은 "muduo"입니다. 또한 성능 비교도 없습니다.dev poll reactor에서 시간 초과를 구현하기 위해 linux timerfd를 사용합니다.
감사합니다.
linux 용 timerfd (timerfd_create)를 사용하면 Timer_Heap 또는 Timer_Wheel보다 성능이 향상되는지 궁금합니다. 분명히 이것은 매우 높은 수준의 질문이며 모든 프레임 워크에서 사용되는 것을 본 유일한 곳은 "muduo"입니다. 또한 성능 비교도 없습니다.dev poll reactor에서 시간 초과를 구현하기 위해 linux timerfd를 사용합니다.
감사합니다.
libevent와 같은 이벤트 루프 라이브러리는 최소 힙에 타이머를 유지하고 다음 타이머가 만료 될 때까지 select
/epoll
까지 시간 제한을 전달합니다. 타이머 추가 및 제거는이 시나리오에서 시스템 호출을 포함하지 않으며 최소 힙에 새로운 요소를 추가하기 만합니다.
timerfd
을 사용하면 타이머를 만들 때 시스템 호출 (timerfd_create()
, timerfd_settime()
및 epoll_ctl()
)이 3 번 걸립니다. 그리고 만료 될 때마다 해당 파일 설명자에서 read()
해야합니다.
timerfd
은 이벤트 루프가없는 응용 프로그램에 유용 할 수 있지만 이미 괜찮은 이벤트 루프를 사용하는 응용 프로그램에서는 유용하지 않을 수 있습니다.
muduo 프레임 워크는 이벤트 루프를 사용하지만 표준 네트워킹 프레임 워크로 사용되는지 확실하지 않습니다. 하지만 지금은 timerfd가 epoll/select 등에서는 쓸모가 없다는 말을 듣겠습니다. – Arunmu