小编sha*_*awn的帖子

如何使用 unsafe 从没有内存复制的字符串中获取字节切片

我已经阅读了关于“ https://github.com/golang/go/issues/25484 ”关于从[]byteto 的无复制转换string

我想知道是否有办法将字符串转换为没有内存复制的字节片?

我正在编写一个处理 terra 字节数据的程序,如果每个字符串在内存中复制两次,则会减慢进度。而且我不关心可变/不安全,只关心内部使用,我只需要尽可能快的速度。

例子:

var s string
// some processing on s, for some reasons, I must use string here
// ...
// then output to a writer
gzipWriter.Write([]byte(s))  // !!! Here I want to avoid the memory copy, no WriteString
Run Code Online (Sandbox Code Playgroud)

所以问题是:有没有办法防止内存复制?我知道也许我需要 unsafe 包,但我不知道如何。我已经搜索了一段时间,直到现在还没有答案,SO 也没有显示相关的答案有效。

string performance go slice

4
推荐指数
4
解决办法
3321
查看次数

标签 统计

go ×1

performance ×1

slice ×1

string ×1