Question

We have a C++ / Objective C based app. We use LLVM-GVC compiler to compile our code.

Currently we build 32-bit binaries and deploy them on our customer's machines. We support SnowLeopard, Lion, Mountain Lion and Mavericks. I'm aware that all these are 64 bit OS. They can run 32 bit binaries fine.

But i want to know, going forward , is it a better idea to deploy 64bit binaries of my app? I can compile our code base and build 64 bit binaries, but i will have to link against 3rd party 64bit libraries etc. I think its do-able.

My question is what are the advantages of deploying 64 bit binaries, provided that 32binaries still work on these OS's?

Also what bout Universal Binary? Do you guys think building a Universal Binary would be a better option? If yes, why?

I'd appreciate any thoughts/suggestions.

Was it helpful?

Solution

If your binaries are standalone apps, as in they're not plugins or dylibs for other programs, then there's nothing wrong with using 32-bit binaries. You're in good company; if you look at Google's Chrome browser, that also uses 32-bit binaries.

The advantage of 64-bit is that you can address more memory, if required and I think there are a few assembler instructions that are faster with 64-bit instructions, but overall, if it works for you, I don't believe it's an issue.

If you find yourself creating a dylib that must work with both 32 and 64 bit applications, that would be a reason for creating a Universal Binary, to save having to create one of each and work out which you need at runtime; with a Universal Binary OSX will take care of that for you.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top