Go程序提速42%,只需改变一个字符( 二 )


对于每个结构体 , 把它看作纯值或纯指针 , 压根就不去使用&这种取地址的操作 , 避免隐式的内存分配 。

Go程序提速42%,只需改变一个字符

文章插图
 
如果你想要深入理解这个问题 , 也有人贴心的给出了需要提前了解的一些背景知识 。
Go程序提速42%,只需改变一个字符

文章插图
 
最后有人指出 , Rust语言为避免这个问题 , 直接规定必须显式操作才能拷贝一个数据结构 。
Go程序提速42%,只需改变一个字符

文章插图
 
 
当你不习惯的时候这规定烦得要命 , 但是总的来看还是值得 。
 
方便or规范 , 你更倾向于哪种做法?
参考链接:
[1]https://hmarr.com/blog/go-allocation-hunting/
[2]https://news.ycombinator.com/item?id=33594676




推荐阅读