AI 与机器学习
Go 切片导致内存泄露,被坑两次了!
Posts on 煎é±0 次浏览
大家好,我是煎鱼。 前段时间在我的 Go 读者群里,有小伙伴们在纠结切片(slice)的问题,我写了这篇《Go 切片这道题,吵了一个下午!》,引起了一拨各种讨论,还是比较欣慰的。 这不,有小伙伴给我提出了新的题材: 提出的是 Go 中很容易踩坑的切片内存泄露问题。作为宠粉的煎鱼肯定不会放过,争取让大家都避开这个 “坑”。 今天这篇文章,就由煎鱼带大家来了解这个问题:Go 切片可能可以怎么泄露法? 切片泄露的可能 在业务代码的编写上,我们经常会接受来自外部的接口数据,再把他插入到对应的数据结构中去,再进行下一步的业务聚合、裁剪、封装、处理。 像在 PHP 语言,常常会放到数组(array)中。在 Go 语言,会放到切片(slice)中。因此在 Go 的切片处理逻辑中,常常会涉及到如下类似的动作。 示例代码如下: var a []int func f(b []int) []int { a = b[:2] return a } func main() { .
原文:https://eddycjy.com/posts/go/slice-leak/