By: Ungo (a.delete@this.b.c.d.e), August 11, 2014 2:59 pm
Room: Moderated Discussions
Linus Torvalds (torvalds.delete@this.linux-foundation.org) on August 10, 2014 11:38 am wrote:
> But even if you look at the non-crypto geekbench numbers, there were real differences between
> 32-bit and 64-bit geekbench builds that people seem to attribute to arm64 being magical.
> I suspect it's more likely to be a geekbench build issue. Or possibly it's a real A7 quirk
> - it might handle some 32-bit construct badly just because Apple didn't care.
I doubt this explains anything in geekbench benchmarks since I don't think there's any Objective-C inner loops involved, but there are some real and important gains in Objective-C on ARM64:
https://mikeash.com/pyblog/friday-qa-2013-09-27-arm64-and-you.html
There's no actual ARM64 magic here, though. Just clever trickery which packs a key 64-bit pointer with extra non-pointer information to reduce the amount of pointer chasing done by the Objective-C runtime.
> But even if you look at the non-crypto geekbench numbers, there were real differences between
> 32-bit and 64-bit geekbench builds that people seem to attribute to arm64 being magical.
> I suspect it's more likely to be a geekbench build issue. Or possibly it's a real A7 quirk
> - it might handle some 32-bit construct badly just because Apple didn't care.
I doubt this explains anything in geekbench benchmarks since I don't think there's any Objective-C inner loops involved, but there are some real and important gains in Objective-C on ARM64:
https://mikeash.com/pyblog/friday-qa-2013-09-27-arm64-and-you.html
There's no actual ARM64 magic here, though. Just clever trickery which packs a key 64-bit pointer with extra non-pointer information to reduce the amount of pointer chasing done by the Objective-C runtime.