3

Our app uses the foursquare API, and I'm interested in how compiling with armv7 architecture impacts:

  • location accuracy
  • speed (floating point calculations)

Does compiling with armv6 architecture provide any relative benefit in terms of location accuracy or speed of floating point calculations?

Has anyone tested this to measure the actual difference? Or is it too small to be of any consequence?

I'm wondering if it's worth it to use a hybrid armv6/armv7 build to improve these two performance elements, even if it results in a nominal increase in the app filesize?

Thanks.

Karthik
  • 85
  • 6
  • more specifically, how does the armv6/armv7 choice impact location accuracy and speed when using the foursquare iOS SDK? are the foursquare API results degraded in terms of accuracy by using armv7 rather than armv6 (which uses double precision floating point calculations)? when using armv6, is the user experience degraded meaningfully by having to wait longer for the API results to be displayed (relative to armv7)? thanks. – Karthik Jan 09 '12 at 23:45

2 Answers2

4

Does compiling with armv6 architecture provide any relative benefit in terms of location accuracy or speed of floating point calculations?

I think the bigger question here is; do you care if your app doesn't run on older ARMv6 based hardware? Because creating an ARMv7-only build will limit the number of devices your app supports.

Or is it too small to be of any consequence?

All depends on your situation... but, in my experience the clock speed of the ARMv6-based devices vs. the ARMv7-based devices is of much more significant consequence than any optimization differences the compiler makes between the two.

I'm wondering if it's worth it to use a hybrid armv6/armv7 build

This is the default - and unless you have a specific reason not to build for both - you should - it will guarantee best results on both ARMv6 and ARMv7-based devices - your only alternative if you want maximum compatibility is to build for ARMv6 only - which will guarantee you that if there were some place the compiler could optimize for ARMv7 you'd be losing out on those optimizations.

Steve
  • 31,144
  • 19
  • 99
  • 122
1

If you have both ARMv6 and ARMv7 enabled when building and not restricted to build only for active architecture - the final application will have 2 binary images. One for 6 and second for 7. In other words - your choice is: build only for V7 and does not support V6 at all, or build both for 6 and 7 and provide universal binary. Finally the device will use appropriate binary image. Not sure that it's hard choose...

I personally prefer to support as much devices as possible and do not agree with Apple on changes in Xcode 4.2 pushing developers to drop ARMv6 devices support.

AlexeyVMP
  • 2,386
  • 3
  • 24
  • 31