当前位置: 首页 > 科技观察

GoSlice中应该使用Struct吗?

时间:2023-03-12 22:00:33 科技观察

很多人已经写了很多年的Go,但是对于Go的内存结构他们还是一无所知,除了内存对齐,比如是放一个结构体([]MyStruct)还是放一个结构体指针([]*MyStruct),还是一头雾水。是否应该使用指针将结构放入Go切片中?我们先通过一个性能测试,看看两种情况下的性能对比:我们先定义一个结构体:typeMyStructstruct{AintBint},然后用go自带的benchmark进行测试。首先是使用指针的场景:funcBenchmarkSlicePointers(b*testing.B){b.ReportAllocs()fori:=0;i