纠结于[]struct
还是[]*struct
直接make([]struct,0)
后append 还是 用sync.Pool
make([]struct,100)
写段代码跑个分, 结论是
[]*struct
的要比[]struct
多n次取指针的内存分配, 所有更慢, 如果不用修改结构体元素内的值, 没有必要用指针切片- append
[]*struct
要比[]struct
慢 sync.Pool
效果明显
benchmark结果
BenchmarkStructSliceWithoutPool-8 200000 5458 ns/op 16320 B/op 8 allocs/op |
benchmark代码
package main |