难道其他操作系统实现Linux系统调用剪接?(Do other operating systems

2019-09-22 02:09发布

在实际应用中,我发展我使用splice在Linux上的接头到插口的数据传输。

  1. 做其他的操作系统(特别至少是Windows,OS X和FreeBSD)实现splice或等效的解决方案?
  2. 是否有可能模仿接头到插口的数据splice荷兰国际集团在Windows上sendfile ¹+ memmap ¹?

¹下都,我不记得了不同的名称存在于Windows。


更新

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

  • DFDRFMFMR是我在不同隧道模式的应用, NX是NGINX Web服务器
  • -p+t使用Linux系统调用splice
  • +pt使用便携式实施方案与用户空间的缓冲区
  • +p+t使用的便携式实现与用户空间缓冲器和多个OS线程
  • 条表示以每秒千兆字节秒的吞吐量
  • 单个1千兆字节(1048576000个字节)文件是由4个并发客户端requsted 4次

Answer 1:

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



Answer 2:

的TransmitFile想到在winsock的一个这样的方式从一个文件句柄流的插座,但我的不肯定这是否会帮助你,因为它是从文件- >磁盘流。 您可能能够与使用内存映射文件句柄。

我听说在过去的几个人“内核模式”,加快一些回声和简单的服务器操作的方式说话,但我从来没有做过。

在内核模式Winsock的一些链接:

http://blogs.msdn.com/b/wndp/archive/2006/02/24/introduction-to-winsock-kernel-wsk.aspx

http://msdn.microsoft.com/en-us/library/windows/hardware/ff571084(v=vs.85).aspx



文章来源: Do other operating systems implement the Linux system call splice?