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

我对maxevents参数有些困惑。假设我要编写一个可以处理多达1万个连接的服务器。那么我将maxevents定义为10000,还是出于某种原因而将其降低?

最佳答案

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

如果内核当时要馈送给程序的事件数量多于该数量,它将看到它不应该发生,因为您不希望在特定的_wait中返回很多事件。

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

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

10-11 18:35