News for hackers. Stuff that matters.
Re:ARM MacBook vs. Intel MacBook by jeffbee on Friday December 11, 2020 @10:02PM (#25394999)
These are my personal observations. You can reproduce, but you'll need to bootstrap the Go toolchain first. For example, in your GOROOT:

  go test -test.bench=Cond2 --test.run=ZZ --test.cpu=1,2,4 sync
For me:

  goos: linux
  goarch: amd64
  pkg: sync
  BenchmarkCond2       3575089        336 ns/op
  BenchmarkCond2-2     3236198        370 ns/op
  BenchmarkCond2-4     2831134        420 ns/op

  goos: darwin
  goarch: arm64
  pkg: sync
  BenchmarkCond2       5903233        190.4 ns/op
  BenchmarkCond2-2       85038      27434 ns/op
  BenchmarkCond2-4     2500750        677.9 ns/op
Way, way worse in the 2- and 4-thread cases on the mac. I don't know why, and the performance of the 2- case swings all over the place.
Re:ARM MacBook vs. Intel MacBook by bacon_blood on Friday December 11, 2020 @10:48PM (#25395326)
Go f1980efb92c011eab71aa61b68ccf58d845d1de7 on a Mini on 11.0.1

    goos: darwin
    goarch: arm64
    pkg: sync
    BenchmarkCond2       4849542        249.7 ns/op
    BenchmarkCond2-2     2639139        531.1 ns/op
    BenchmarkCond2-4     3112030        393.1 ns/op
Re:ARM MacBook vs. Intel MacBook by jeffbee on Friday December 11, 2020 @11:03PM (#25395409)
Interesting, I can confirm. I wonder if this was the fix.

https://github.com/golang/go/commit/c15593197453b8bf90fc3a90...

Re:ARM MacBook vs. Intel MacBook by st3fan on Friday December 11, 2020 @10:12PM (#25395043)
I would not use a work in progress port of Go to compare. This would be better in C to rule out Go runtime issues.
Re:ARM MacBook vs. Intel MacBook by jeffbee on Friday December 11, 2020 @10:40PM (#25395275)
It probably is in the Go runtime but I tend to look at things at this level. For example if there's some bug in libc++ that's not something I can overlook when evaluating the M1.

There was another comment here that was deleted that accidentally showed the output of running x86-64 go on the M1. That's another weird risk at the user level, that you may unknowingly run the wrong binary through rosetta2 instead of running the native one.