【问题标题】:epoll_wait: maxeventsepoll_wait:最大事件数
【发布时间】:2011-02-27 12:07:55
【问题描述】:
int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout);

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

【问题讨论】:

    标签: c linux events epoll


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-09-29
      • 1970-01-01
      • 1970-01-01
      • 2018-10-28
      • 2016-01-27
      • 2022-01-12
      • 1970-01-01
      • 2011-01-15
      • 1970-01-01
      相关资源
      最近更新 更多