Windows 8和Server 2012 sport RIO,它允许您预先注册I / O缓冲区一次,然后重复使用相同的缓冲区,避免每个I / O操作的其他(显然)必要缓冲区检查。
RIO还允许轮询等完成操作完全在用户模式下完成,而无需进行系统调用。
(如何)使用Linux / Unix可以实现这一点?答案 0 :(得分:1)
在构建netmap时,我们确定并成功减少了或 删除了三个主要的数据包处理成本:
- 每个数据包的动态内存分配,由预分配资源
删除- 系统调用开销,按大批量摊销
- 和内存副本,通过在内核和用户空间之间共享缓冲区和元数据来消除,同时仍然保护对设备的访问 寄存器和其他内核存储区
醇>
所以也许问题 - 所有这些功能的最终目标是性能 - 应该是:Is performance comparable to that of Linux achievable in Windows?。
答案 1 :(得分:1)
从Linux Kernel 5.1开始,io_uring终于有了适当的支持。