[英]maxevents parameter in epoll_wait() and the events array size
[英]epoll_wait: maxevents
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
值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.