在我正在开发的应用程序中,我splice
在 Linux 上用于套接字到套接字的数据传输。
- 其他操作系统(特别是 Windows、OS X 和 FreeBSD)是否实施
splice
或等效的解决方案? - 是否可以使用¹ + ¹
splice
在 Windows 上模拟套接字到套接字的数据?sendfile
memmap
¹ 两者都以不同的名称存在于 Windows 上,我不记得了。
更新
您可以看到splice
Linux 上 vs 用户空间缓冲区的性能改进。
DF
,DR
,F
,MF
,MR
是我在不同隧道模式下的应用程序,NX
是 NGINX Web 服务器-p+t
使用 Linux 系统调用splice
+p-t
使用带有用户空间缓冲区的可移植实现+p+t
使用具有用户空间缓冲区和多个操作系统线程的可移植实现- 条形图表示每秒千兆字节的吞吐量
- 一个 1 GB(1048576000 字节)的文件被 4 个并发客户端请求了 4 次