Remix.run Logo
sltkr 6 hours ago

Are you sure you are comparing apples with apples here?

The fact that i686 is 14% faster than x86_64 is a little suspicious, because usually the same software runs _faster_ on x86_64 (despite the increased memory use) thanks to a larger register set, an optimized ABI, and more vector instructions.

Of course, if you are compiling an i686 binary on i686, and an x86_64 binary on x86_64, then the compilers aren't really doing the same work, since their output is different. I'm not a compiler expert, but I could imagine that compiling x86_64 binaries is intrinsically slower than for i686 for a variety of reasons. For example, x86_64 is mostly a superset of i686, so a compiler has way more instructions to consider, including potential optimizations using e.g. SIMD instructions that don't exist on i686 at all. Or a compiler might assume a larger instruction cache size, by default, and do more unrolling or inlining when compiling for x86_64. And so on.

In that case, compiling on x86_64 is slower not because the hardware is bad but because the compiler does more work. Perhaps something similar is happening on RISC-V.

jmalicki 5 hours ago | parent | next [-]

It isn't crazy uncommon to see i686 be faster - usually it means you're memory bandwidth bound.

But yeah, it may mean the benchmark is not representative.

3 hours ago | parent | prev | next [-]
[deleted]
fweimer 6 hours ago | parent | prev [-]

The x86-64 build runs about 50% more linker tests than the i686 build.