Go 语言中 append 导致内存不足

lightfish-zhang · 2018-05-10 21:23:46

代码中的largeOfList是多大?

#2
更多评论

讲了这么多,只讲了问题,没讲到要点 append容量不足,go会生成翻倍容量的slice(1->2, 2->4, ....128->256....) 避免内存重复操作,有几个方法

  1. 提前知道大小的, 创建slcie时,指定大小。 2.要for 循环 append大量数据的,可以提前预估大小,创建新slice,并把旧的拷贝过去。然后用新的append。 不知道具体大小,比起直接翻倍,大一点没关系

slice原理官方解释:https://blog.golang.org/go-slices-usage-and-internals

#1

gopl上面有说。。slice还是个很有意思的东西。

#3