That is currently the case for the mainline implementations, AFAIK, but it really shouldn't matter, unless you are hacking on the runtime/compiler.
On Sat, Feb 11, 2017 at 3:36 PM, T L <tapir....@gmail.com> wrote: > > > On Saturday, February 11, 2017 at 1:49:58 PM UTC+8, T L wrote: >> >> https://github.com/golang/go/issues/5373 >> > > > btw, does this optimization imply that the zero value of any type is > composed by zero bytes? > At least for all current supported ARCHes. > > >> >> >> I made a test >> >> package main >> >> import ( >> "testing" >> ) >> >> const N = 1024 * 100 >> var a [N]int >> >> func BenchmarkArrayPtr(b *testing.B) { >> for i := 0; i < b.N; i++ { >> for i := range &a { >> a[i] = 0 >> } >> } >> } >> >> func BenchmarkArray(b *testing.B) { >> for i := 0; i < b.N; i++ { >> for i := range a { >> a[i] = 0 >> } >> } >> } >> >> func BenchmarkArrayB(b *testing.B) { >> var k int >> go func() { >> k = 123 >> }() >> for i := 0; i < b.N; i++ { >> for k = range a { >> a[k] = 0 >> } >> } >> } >> >> /* >> Outputs: >> BenchmarkArrayPtr-4 50000 90457 ns/op >> BenchmarkArray-4 100000 49656 ns/op >> BenchmarkArrayB-4 100000 49628 ns/op >> */ >> >> it looks the loop in the BenchmarkArrayB is also optimized as a memclr >> call, but I can't make sure it is true. >> If it is true, it is over-optimized. >> Anyone can confirm it is over-optimized or not? >> > -- > 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. > -- 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.