"b = &boy{}" vs "*b = boy{}" 谁不讲武德?golang 逃逸分析入门
背景最近想要将 protobuf 变量和之前设计的数据对象整合起来,维护在内存中,以减少内存申请和 GC 的性能损耗。feature or bug,gogoproto 解码疑惑由于 gogoproto 在 unmarshal 时不保证输入和输出一致,作为结果的指针变量和输入的字节切片可能不一致(比如说,在 unmarshal slice 时没有 reset 操作)。我们需要对这个指针变量进行重置,pb 生成文件的 reset 实现方法如下。func (m Data) Reset() { m = ...阅读全文