私が開発しているアプリケーションではsplice、Linux でソケットからソケットへのデータ転送に使用しています。
- 他のオペレーティング システム (特に少なくとも Windows、OS X、および FreeBSD) は、実装
spliceまたは同等のソリューションを実装していますか? spliceWindows でsendfile¹ + ¹ を使用してソケット間のデータ通信を模倣することは可能memmapですか?
¹ 両方とも、覚えていない別の名前で Windows に存在します。
アップデート
spliceLinux でのユーザー空間バッファーに対するパフォーマンスの向上を確認できます。
DF、DR、F、はMF、MR異なるトンネリング モードのアプリケーションであり、NXNGINX Web サーバーです。-p+tLinux システムコールを使用splice+p-tユーザー空間バッファで移植可能な実装を使用します+p+tユーザー空間バッファーと複数の OS スレッドを備えた移植可能な実装を使用します- バーは、1 秒あたりのギガバイト単位のスループットを表します
- 1 つの 1 ギガバイト (1048576000 バイト) のファイルが、4 つの同時クライアントによって 4 回要求されました
