gpt4 book ai didi

c++ - 使用 linux timerfd 在 Dev poll reactor 中实现超时

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:46:29 29 4
gpt4 key购买 nike

只是想知道在 Linux 上使用 timerfd (timerfd_create) 是否会比 Timer_Heap 或 Timer_Wheel 提供任何性能优势。当然,这是一个非常高层次的问题,我看到它在任何框架中使用的唯一地方是“muduo”。此外,我也没有任何性能比较。

谢谢。

最佳答案

像 libevent 这样的事件循环库,在最小堆中维护计时器,并将超时时间传递给 select/epoll,直到下一个计时器到期。请注意,添加和删除计时器在这种情况下不涉及任何系统调用,它只是将一个新元素添加到最小堆中。

当你使用timerfd时,它需要3次系统调用(timerfd_create()timerfd_settime()epoll_ctl()) 只是为了创建一个计时器。每次它过期时,您都需要从该文件描述符中read()

timerfd 对于没有事件循环的应用程序可能很有用,但对于那些已经使用合适的事件循环的应用程序来说它几乎没用。

关于c++ - 使用 linux timerfd 在 Dev poll reactor 中实现超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21425736/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com