c - epoll_wait : maxevents

标签 c linux events epoll

int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout);

我对 maxevents 参数有点困惑。假设我想编写一个可以处理多达 10k 连接的服务器。那么我会将 maxevents 定义为 10000,还是出于某种原因它应该更低?

最佳答案

Maxevents就是*events指向的struct epoll_events数组的长度。

如果内核当时有超过该数量的事件要提供给您的程序,它将发现它不应该,因为您不希望在那个特定的 _wait 中返回那么多。

您可能需要为您的程序试验最佳大小。最佳尺寸甚至可能因架构而异。对于正在轮询的少量文件描述符,您可以很容易地将 maxevents 设置为文件数(并相应地调整 events 数组的大小),但是所有文件需要的可能性同时注意力很低,因此您可能可以使用较低的 maxevents 值。

关于c - epoll_wait : maxevents,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2969425/

相关文章:

c - C语言中如何反转一个整数?

c - 如何检查一个文件是否已经在C中打开

javascript - React - 无法访问有状态组件事件处理程序中的引用

javascript - 检测/测量滚动速度

c++ - Outlook - CreateDispatch 异常

c - 从文件读取最后 n 个字节时出现段错误

c++ - iconv() - 如何确定输出缓冲区所需的大小?

c - 快速值检查?

java - 在 Java 中更改 SAMBA 密码

python - 获取整个站点 python