- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
写入器程序使用固定缓冲区的多次写入发送几 MB(几乎没有延迟)。处理程序在 EPOLLOUT | 中注册。 EPOLLET
标志。
write(...)
调用返回了一些 ~3 EAGAIN(写入在下一个事件中重新开始)和 ~30 虚假 EPOLLOUT(在所有写入完成并且数据被认为已发送之后)。 好像没那么简单EPOLLOUT 在缓冲区从已满变为“可用空间”时生成。与 MTU 大小的相关性很有趣。问题:
1) 除非最后一次写入以 EAGAIN 代码结束,否则禁用 EPOLLOUT - 是正确的模式吗?
2) 更大的缓冲区或 MTU 建议传输更大的数据 block 产生更少的 TCP/IP 缓冲区更新和更少的事件。实践表明相反。任何人都可以对此有所了解吗?
最佳答案
EPOLLOUT 表示缓冲区中有空间。这并不意味着只是从无空间到有空间的过渡。您应该仅在从发送中获得 EAGAIN 后才使用它。否则,您只会得到毫无意义的 EPOLLOUT 事件流,因为发送缓冲区中几乎总是有空间。
关于您的 (1),是的,这才是正确的使用方式。只要写到你获得 EAGAIN,然后使用 EPOLLIUT 告诉你什么时候可以再次写。
关于c++ - EPOLLOUT | EPOLLET、虚假唤醒和 MTU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21395074/
请考虑以下程序: #define _GNU_SOURCE #include #include #include #include #include #include #include i
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 1 年前。 Improve
我在边缘触发模式下使用epoll。为了避免饥饿,代码从一个套接字一次读取 MAX_FREAD_LENGTH 字节。随后组装片段直至 EOL 发生。我注意到当 MAX_FREAD_LENGTH 很小时,
进程 B 在管道上进行 epolls (EPOLLIN|EPOLLET)。 进程 A 在管道中写入 1KiB。 进程 B 醒来。 进程 B 从管道中读取 1KiB。 进程 A 在管道中写入 1KiB。
带有 EPOLLOUT 的 epoll TCP | EPOLLET只获取一次事件,即使我在获取第一个事件后发送数据也会超时。 而在UDP中,epoll在发送新数据后不断获取EPOLLOUT事件。 你能
写入器程序使用固定缓冲区的多次写入发送几 MB(几乎没有延迟)。处理程序在 EPOLLOUT | 中注册。 EPOLLET 标志。 MTU=16KB,写入缓冲区 = 4KB 或更多。 write(..
我在边缘触发模式下使用 linux epoll。 每次有新连接传入时,我都会使用 EPOLLIN|EPOLLOUT|EPOLLET 标志将文件描述符添加到 epoll。我的第一个问题是:在 epoll
人 epoll: The suggested way to use epoll as an edge-triggered (EPOLLET) interface is as follows:
epoll 联机帮助页说如果没有完成读取,用 EPOLLET(edge triggered) 注册的 fd 不应该通知两次 EPOLLIN。 因此,在 EPOLLIN 之后,您需要在 epoll_wa
是否可以在一次性级触发模式下使用epoll? 当我搜索时,我找不到任何关于它的信息;好像大家都用边沿触发的方式。 最佳答案 When the EPOLLONESHOT flag is selected
我是一名优秀的程序员,十分优秀!