However, LLVM/clang vs GCC is too far and made the benchmark result completely nonsense. How can you make sure it isn't just that LLVM/clang is faster than GCC? Or even makefile detected clang so turned on different compiler flags.
That said, I attempted to make the comparison as close as possible by timing the time it takes to cross-compile Hugo for Windows/x64 (taking care to run it once to load the sources into the package cache, while clearing the object file cache each time). Thus using the exact same Go 1.20.1 compiler, the same code generator back-end, the same platform source code being compiled, and the results are much closer:
- Mac Studio (M1 Ultra, 128G): 9.7s
- Macbook Air (M1, 16G): 16.7s
- HP DevOne (5850U, 64G): 18.7s
- HP Z2 Mini G4 (Xeon E-2176G, 32G): 20.7s
- Gigabyte Aorus 17G (i7-11800H, 64G): 16.5s
So you are right, somehow GCC's optimizer at the -O2 level is much slower on x64 laptops than x64 desktop or arm64. Not sure why compiling p7zip is so much faster on the Xeon than on the Ryzen or Aorus, gcc is 12.2 on both and the optimizer setting is -O2, no -march=native. The only explanation I can think of is thermal throttling, since both slow machines are laptops, and somehow GCC is triggering that in a way Go's compiler is not (nor apparently clang).
That does not matter at all for the M1 MBA. So no bias.
Apple Silicon strength is in efficiency and low power draw, they're mostly slower than high end AMD/Intel chips (which admittedly, use a lot more power). In no world is the 5850U 5x worse than the M1, it's just absurd to suggest so.
When I run Docker containers on my M1 MBP, tasks are 15-20x slower than my Linux laptop. Obviously it would be ridiculous of me to suggest that therefore the M1 is 15x worse than my laptop's 2020 Intel chip.
Still, 5x worse performance at a real-world task that most closely approximates my use case is a significant difference.