8 comments

[ 5.1 ms ] story [ 29.7 ms ] thread
Zero-Copy in Go: Why magic is an antipattern, and: performance is observable behavior.
Interesting premise for a post, but I had to stop midway due to the AI slop writing adding meaningless information.
This is almost like the expression problem. Copy is a new operation, and you introduced a new type, thus creating a new grid cell nobody from either side could have reasonably known about - except for the fact Copy is in the standard library so you could have known about it but not done anything.
How is the byte counting reader supposed to work in user space without putting the buffer in user space? The article claims there is a way but I want to see what is meant by counting bytes in that case.
Beware, there are versions of go where sendfile is broken and only sends the first 4k of a file on macos.
If this is a thing you need to beware of, you should more importantly beware of using a version of Go that's been outdated for over 1.5 years and EOL for nearly a year.

Context: https://github.com/golang/go/issues/70000 fixed in 1.23.3 (released 2024-11-06), EOL for 1.23.x was 2025-08-06