![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Golang
文章平均质量分 78
Leave_97
这个作者很懒,什么都没留下…
展开
-
Golang: 高效使用切片
在日常开发中,切片最开始通常都是空的,长度为0,需要添加元素进去。 在切片元素数量较少情况下还好,如果切片元素数量过多,或者扩容速度太快,会导致频繁的切片扩容,频繁分配新的底层数组,降低切片添加元素的速度。 本博客整理几种常见的切片添加元素方式,而且都是针对刚初始化的空切片。原创 2023-01-22 01:48:53 · 299 阅读 · 1 评论 -
Golang: 切片扩容机制源码分析
切片在append的过程中,当len > cap时,会触发切片的扩容机制。扩容时会分配一个容量更大的底层数组,并把原来切片的元素复制到新底层数组中,再添加新元素进去。扩容机制分为两部分:计算新容量(确定大致容量)、内存对齐(获取真实的扩容后容量)。原创 2023-01-22 00:24:59 · 565 阅读 · 0 评论