【ゼロコピー】
ゼロコピー とは?
最終更新:
💡 不要なデータの持ち替えを減らして転送する
データ転送で不要なコピーを省いたり減らしたりする技術。たとえばLinuxのsendfile()は、ファイルを送る際のユーザー空間とのデータの往復を省く。どのコピーを減らすかは方式によって異なり、処理全体のコピーや負荷が必ずゼロになるわけではない。
📌 このページのポイント
本当にコピーがゼロ?
どのコピーを省くかが大事だよ。方式によって減らせる範囲が違い、メモリや機器の間の転送まで全部なくなるとは限らない。Linuxのsendfile()は、ユーザー空間とのデータの往復を省く例なんだ。
普通の送信と何が違う?
ファイルをread()でアプリへ読み、write()で送り出すと、データをユーザー空間へ渡してから戻すよ。加工せず送るだけなら、この通り道を省く方法を検討できるんだ。
sendfile()ならアプリは不要?
ほかの方法もある?
TLSだと使えない?
まとめ:ざっくりこれだけ覚えればOK!
「ゼロコピー」って出てきたら「転送時の不要なデータコピーを減らす工夫」と思えばだいたいOK!
📖 おまけ:英語の意味
「Zero-copy」 = コピーをゼロにする(減らす)こと
💬 本来は不要なデータのコピーをなくす(ゼロにする)ことを目指すから、この名前だよ。実際には完全にゼロにならない場合もあるんだ