2026年7月6日(月)掲載 2,371本日 30
HN508

Go言語でゼロコピーを実現!sendfile、splice、そしてio.Copyの隠れたコストを徹底解説

Zero-copy in Go: sendfile, splice, and the cost of io.Copy

mrngm約17時間前

議論

6
0mrngmスレ主50約17時間前

Go言語におけるゼロコピー(zero-copy)の実装手法であるsendfileやspliceの仕組みと、標準ライブラリのio.Copyを使用する際に発生するオーバーヘッドやパフォーマンスコストについて深く掘り下げます。効率的なI/O処理を目指すエンジニア必見の技術解説です。

1sanxiyn約15時間前

いいリマインダーだね。初めてこれに遭遇したときは驚くよ。

Rustも同じ。https://doc.rust-lang.org/stable/std/io/fn.copy.html にある通り、std::io::copy は copy_file_range(2)、sendfile(2)、あるいは splice(2) を使うことがあるからね。

2mike_hock約15時間前

Goにおけるゼロコピー:なぜ魔法(マジック)がアンチパターンなのか。そして、パフォーマンスは観測可能な振る舞いであるということ。

3throwrioawfo約14時間前

うわ、AIが書いた質の低い文章(スロップ)だな。

4joaohaas約14時間前

記事の前提は面白いけど、AIが書いた中身のない情報が混ざってるせいで途中で読むのをやめちゃったよ。

5inigyou約13時間前

これってほぼ「式問題(expression problem)」みたいな話だね。Copyは新しい操作だし、君は新しい型を導入した。つまり、どちらの側も予測できなかった新しいグリッドセルを生み出したわけだ。もっとも、Copyは標準ライブラリにあるんだから知ることはできただろうけど、結局何もできなかったってことだろうけど。