Apple's new iPhone 5s uses a 64-bit A7 CPU. The next generation 64-bit apps will be a little bit larger and hybrid 32/64-bit apps will be almost double in size. If you're you're thinking about a 16 GB iPhone 5s, should you consider a 32 GB model instead? I asked a few iOS developers about it.
To answer this question, it's helpful to size up, so to speak, how much storage your apps use compared to other kinds of data, for example, videos, music and photos. Then, it's helpful to get a feel for what the impact is of moving to a few 64-bit apps.
I have a 16 GB iPhone 5. Let's take a look at my storage shown in iTunes.
My iPhone 5 storage shown in iTunes
- 652 songs use 4.8 GB. That's about 7.4 MB per song.
- 755 photos use 1.75 GB. That's about 2.3 MB per photo.
- 84 apps use up 2.4 GB. That's about 28 MB per app.
The thing to note is that while apps are generally larger than songs or photos, we're not likely to have as many of them. As a result, even if you have a lot of apps, by most standards, you're probably not going to chew up a lot of storage -- less than 3 GB for 100 apps.
Phil Schiler introduces the 64-bit A7 in iPhone 5s. (Image Credit: Apple)
The 64-bit Impact
I asked Rich Siegel, the President of Bare Bones Software, about whether the new generation of 64-bit apps will dramatically increase our need for storage on the iPhone 5s. He told me:
If we deliver a product for both 32- and 64-bit architectures in a single package, the code portion of it will be roughly twice the size, simply because you've got two compiled binaries in the package instead of one. (Not too dissimilar from the PPC/Intel "Universal" package considerations [from the Intel transition era.])
The overall package size difference won't be twice, though, because code size is only part of the contribution to overall package size.
The single-architecture package should be pretty close in size, no matter which architecture it is.
Peter Kelly of UX Productivity added some detail:
Currently by default most apps are compiled with support for two architecture: armv7 and armv7s (the latter is supported by the A6 processor). With 64-bit support, apps will be compiled with on additional architecture: arm64. So this will increase the size of the executable by about 33 percent.
However the total package size for an app contains not just code but also data -- games in particular will be primarily resources (graphics, music etc.) while productivity apps generally have far less. I would estimate that for a lot of apps the difference will be somewhere around 5 to 15 percent increase in size.
As you can see from the experts above, you would have to replace every app you have with a dual-architecture 32/64 bit app—which would be just under double in size. That's not likely to happen in the short term. At the very worst, over the years your storage for apps might jump from 3 GB to less than 6 GB if you're an average user.
Meanwhile, as you replace some single-architecture 32-bit apps with, say, 64-bit versions as they become available, their size might grow 5 to 15 percent on average. But you'd have to replace every one for your total storage needs to grow by, at most, 15 percent. That would take you from, roughly, 3 GB to 3.45 GB.
If you're living on the very edge and are almost out of storage on a 16 GB iPhone 4/4S/5, you'd probably want to jump to a 32 GB (or more) iPhone 5s anyway. However, if iTunes tells you that your allocation for apps is just a few gigabytes, and your phone isn't heavy with videos, songs and photos, the modest increase in size for 64-bit apps isn't going to be a factor in deciding on the more expensive 32 GB iPhone 5s.
Marco Arment, the author of Instapaper, had some good advice. "You could probably delete three photos and make up the difference."
64-bit teaser image credit: Apple