package main import ( "testing" )
const N = 4096 type T int64 var a [N]T var globalSum T func sumByLoopArray_a(p *[N]T) T { var sum T for i := 0; i < len(p); i++ { sum += T(p[i]) } return sum } func sumByLoopArray_b(p *[N]T) T { var sum T for i := 0; i < len(*p); i++ { sum += T((*p)[i]) } return sum } //============================================ func Benchmark_LoopArray_0a(b *testing.B) { for i := 0; i < b.N; i++ { var sum T for i := 0; i < len(a); i++ { sum += T(a[i]) } globalSum = sum } } func Benchmark_LoopArray_0b(b *testing.B) { for i := 0; i < b.N; i++ { var sum T p := &a for i := 0; i < len(p); i++ { sum += T(p[i]) } globalSum = sum } } func Benchmark_LoopArray_1a(b *testing.B) { for i := 0; i < b.N; i++ { globalSum = sumByLoopArray_a(&a) } } func Benchmark_LoopArray_1b(b *testing.B) { for i := 0; i < b.N; i++ { globalSum = sumByLoopArray_b(&a) } } /* output: $ go test . -bench=. Benchmark_LoopArray_0a-4 300000 5248 ns/op Benchmark_LoopArray_0b-4 300000 5240 ns/op Benchmark_LoopArray_1a-4 500000 3942 ns/op Benchmark_LoopArray_1b-4 300000 3936 ns/op */ why? -- 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.