我发现大部分服务器(比如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/