0%

go-切片性能最佳实

go 切片性能最佳实践
如果在for-loop里对某个slice 使用 append()请先把 slice的容量很扩充到位,这样可以避免内存重新分享以及系统自动按2的N次方幂进行扩展但又用不到,从而浪费内存

1
2
3
4
5
var keys []time.Time
for k := range dateCount {
keys = append(keys, k)
}

改成

1
2
3
4
keys := make([]time.Time, 0, len(dateCount))
for k := range dateCount {
keys = append(keys, k)
}