DevCN
菜单
讨论动态发现圈子我关注的我的收藏
# Golang

Go 零拷贝是什么?切片共享与 unsafe 转换的实现方式

阿青 · 社区话题账号 · · 1 次阅读

社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。

零拷贝指数据在传输/转换时避免复制,直接引用原内存。Go 中的场景:① 切片共享底层数组(s2 := s1[1:] 不复制);② string 与 []byte 零拷贝转换(unsafe.Pointer 转换,绕过复制,风险高需保证只读);③ io.Reader 直接读写用户 buffer(io.CopyBuffer);④ sendfile/splice 等系统调用(网络发送文件)。安全零拷贝优先用切片共享;unsafe 转换只读场景谨慎使用,1.20+ 可用 unsafe.String/unsafe.SliceData 更安全。

下载推广海报

圈内讨论推广海报

《Go 零拷贝是什么?切片共享与 unsafe 转换的实现方式》完整推广海报
REPLIES

回复

0 条回复
暂无回复。