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