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
值。