A case: func iterateAndCopy(slice []T, p *T) { for _, v := range slice { *p = v } }
func Benchmark_CopyCosts(b *testing.B) { b.Run("bool-4", func(b *testing.B){ iterateAndCopy(make([]bool, 4), new(bool)) }) b.Run("int32-4", func(b *testing.B){ iterateAndCopy(make([]int32, 4), new(int32)) }) b.Run("int64-4", func(b *testing.B){ iterateAndCopy(make([]int64, 4), new(int64)) }) b.Run("[128]int-4", func(b *testing.B){ iterateAndCopy(make([][128]int64, 4), new([128]int64)) }) b.Run("struct{a,b,c,d int32}-100", func(b *testing.B){ iterateAndCopy(make([]struct{a,b,c,d int32}, 100), new(struct{a,b,c,d int32})) }) b.Run("bool-100", func(b *testing.B){ iterateAndCopy(make([]bool, 100), new(bool)) }) b.Run("int32-100", func(b *testing.B){ iterateAndCopy(make([]int32, 100), new(int32)) }) b.Run("int64-100", func(b *testing.B){ iterateAndCopy(make([]int64, 100), new(int64)) }) b.Run("[128]int-100", func(b *testing.B){ iterateAndCopy(make([][128]int64, 100), new([128]int64)) }) b.Run("struct{a,b,c,d int32}-100", func(b *testing.B){ iterateAndCopy(make([]struct{a,b,c,d int32}, 100), new(struct{a,b,c,d int32})) }) } -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.