在我开发的应用程序中,我在Linux上使用splice
进行套接字到套接字的数据传输。其他操作系统是否实现Linux系统调用拼接?
- 做其他操作系统(特别至少是Windows,OS X和FreeBSD)实施
splice
或等效的解决方案? - 是否有可能模仿在Windows上的插座到插座数据
splice
与sendfile
1 +memmap
?
¹无论在Windows下我不记得了不同的名称存在。
更新
你可以看到splice
的性能改进VS在Linux用户空间的缓冲区。
DF
,DR
,F
,MF
,MR
是我在不同隧道模式的应用,NX
是NGINX Web服务器-p+t
使用Linux系统调用splice
+p-t
使用用户空间缓冲区的便携式实现+p+t
使用便携式实现与用户空间缓冲液和多个OS线程- 扶手的千兆字节表示可以通过每秒
- 个单个1千兆字节(1048576000个字节)文件是由4个并发客户端requsted 4次
我对此有一些想法。但在我回答之前,让我问,“你真的想做什么?”您是否试图将数据流或数据包从一个套接字回显到另一个套接字上?在发送数据之前你需要检查数据吗? – selbie
回声只回声。我正在研究一种名为[PortFusion]的简单隧道解决方案(http://fusion.corsis。eu),它不需要检查数据流(但是如果有的话,我可以切换到将数据带到用户空间的便携式实现)。 –
@selbie我只是添加了一张图表来说明为什么我对其他操作系统中的'splice'等价物感兴趣。 –