从Golang Slice的内存泄漏来理解Slice的使用逻辑
Golang虽然是自带GC的语言,仍然存在内存泄漏的情况,这片文章总结了Golang中内存泄漏的情况。 其中Slice的内存泄漏是最容易中招的,看看这个PR: writev 的 leak,Golang官方都踩了坑。 本文将就其中的Slice内存泄漏的情况做分析,并介绍Slice实现和使用的一些关键逻辑。 Slice如何内存泄漏 Golang是自带GC的,如果资源一直被占用,是不会被自动释放的,比如下面的代码,如果传入的slice b是很大的,然后引用很小部分给全局量a,那么b未被引用的部分就不会被释放,造成了所谓的内存泄漏。 var a []int func test(b []int) { a = b[:1] return } 复制代码想要理解这个内存泄漏,主要就是理解上面的a = b[:1...阅读全文