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