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/