在我正在开发的应用程序中,我在Linux上使用 splice 进行套接字到套接字的数据传输。

  • 其他操作系统(至少是Windows,OS X和FreeBSD)是否实现splice或等效解决方案?
  • 是否可以在Windows上使用splice¹+ sendfile¹模仿套接字到套接字的数据memmap


  • ¹两者在Windows上都以不同的名称存在,我不记得了。

    更新

    您可以在Linux上看到splice与用户空间缓冲区的性能改进。

    sockets - 其他操作系统是否实现Linux系统调用接头?-LMLPHP
  • DFDRFMFMR是我在不同隧道模式下的应用程序,NX是NGINX Web服务器
  • -p+t使用Linux系统调用splice
  • +p-t使用带有用户空间缓冲区
  • 的可移植实现
  • +p+t使用具有用户空间缓冲区和多个OS线程的可移植实现
  • 条形图代表 gigaBYTE 每秒的吞吐量
  • 4个并发客户端
  • 要求单个1 GB(1048576000字节)文件4次

    最佳答案

    OpenBSD具有sosplicesomove:http://www.openbsd.org/cgi-bin/man.cgi?query=sosplice

    关于sockets - 其他操作系统是否实现Linux系统调用接头?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12230316/

    10-11 17:22