gpt4 book ai didi

c++ - 为什么不在 linux 上使用系统定时器(timerfd)?

转载 作者:太空狗 更新时间:2023-10-29 11:32:33 25 4
gpt4 key购买 nike

我发现大部分服务器(比如RPG页游服务器)总是自己实现一个定时器,而不是使用系统定时器,比如在linux上,

int timerfd_create(int clockid, int flags)

你能告诉我为什么吗?我认为系统 api(timerfd_create) 可以有更高的性能。

最佳答案

阅读time(7) .事实上,timerfd_create(2)效率很高,但它是特定于 Linux 的。

将 Posix 计时器与 timer_create(2) 结合使用等。可能更便携。

Linux 特定的 timerfd_create(以及 signalfd(2) & eventfd(2) ...)的显着优势是 event loop友好(因为它是一个文件描述符,例如管道或套接字)。但是,大多数事件循环都构建在像 poll(2) 这样的多路复用系统调用之上。它确实接受延迟(毫秒)或较旧的 select(2)

关于c++ - 为什么不在 linux 上使用系统定时器(timerfd)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24797000/

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