HN508
Go言語でゼロコピーを実現!sendfile、splice、そしてio.Copyの隠れたコストを徹底解説
Zero-copy in Go: sendfile, splice, and the cost of io.Copy
mrngm・約17時間前
Zero-copy in Go: sendfile, splice, and the cost of io.Copy
Go言語におけるゼロコピー(zero-copy)の実装手法であるsendfileやspliceの仕組みと、標準ライブラリのio.Copyを使用する際に発生するオーバーヘッドやパフォーマンスコストについて深く掘り下げます。効率的なI/O処理を目指すエンジニア必見の技術解説です。
いいリマインダーだね。初めてこれに遭遇したときは驚くよ。
Rustも同じ。https://doc.rust-lang.org/stable/std/io/fn.copy.html にある通り、std::io::copy は copy_file_range(2)、sendfile(2)、あるいは splice(2) を使うことがあるからね。
Goにおけるゼロコピー:なぜ魔法(マジック)がアンチパターンなのか。そして、パフォーマンスは観測可能な振る舞いであるということ。
うわ、AIが書いた質の低い文章(スロップ)だな。
記事の前提は面白いけど、AIが書いた中身のない情報が混ざってるせいで途中で読むのをやめちゃったよ。
これってほぼ「式問題(expression problem)」みたいな話だね。Copyは新しい操作だし、君は新しい型を導入した。つまり、どちらの側も予測できなかった新しいグリッドセルを生み出したわけだ。もっとも、Copyは標準ライブラリにあるんだから知ることはできただろうけど、結局何もできなかったってことだろうけど。