Let's say you're building an application for a very specific android device, and you know exactly what it comes with (OS, architecture, Graphics libraries, RAM, ecc)

I can't really make HUGE changes to my code, but since I'm working with unity, I cant make some changes in the way the APK is built.

So let's say my device is ARCH64, uses OpenGLES3.1 and has 4GB of RAM, what are the improvements in making the APK for 64bits instead of 32?

  • 2
    More available ram (that most phones dont phisically have), newer apis.
  • 3
    The CPU can do 64 bit operations natively, and you have about twice as many CPU registers, compared to AARCH32. That means less register spilling onto the stack, which saves both instructions and (though possibly cached) memory access.
  • 1
    @Fast-Nop @yellow-dog ok thank you both for your answers.
    I never really got around the architecture thing.
  • 2
    @ZioCain Interestingly, that's similar for x86_32 vs. x86_64. Only that the register thing is more important than with ARM because x86_32 has so few of them - also called "register-starved architecture".
  • 1
    @Fast-Nop why the hell would one want to have fewer registers?
  • 2
    @ZioCain No, what I mean, x86_32 has always had fewer registers than ARM-32.

    That's why the step from x86_32 to x86_64 benefits more from the additional registers than ARM does from AARCH32 to AARCH64.
  • 1
    @Fast-Nop oh.. I see, ok thank you for the explanation
Add Comment