64 비트를 설정하면 결과 바이너리가 "Fat"바이너리가됩니다. 여기에는 얇은 fat 헤더와 함께 번들로 제공되는 3 개의 Mach-O 이미지가 모두 포함됩니다. otool 또는 jtool을 사용하여 확인할 수 있습니다. 다음과 같이 AVFoundation Framework와 같이 iOS 7.0 SDK의 일부로 포함 된 일부 팻 바이너리를 확인할 수 있습니다.
% cd /Developer/Platforms/iPhoneOS.platform/DeviceSupport/7.0\ \(11A465\)/Symbols/System/Library/Frameworks/AVFoundation.framework/
%otool -V -f AVFoundation 9:36
Fat headers
fat_magic FAT_MAGIC
nfat_arch 3
architecture arm64
cputype CPU_TYPE_ARM64
cpusubtype CPU_SUBTYPE_ARM64_ALL
capabilities 0x0
offset 16384
size 2329888
align 2^14 (16384)
architecture armv7
cputype CPU_TYPE_ARM
cpusubtype CPU_SUBTYPE_ARM_V7
capabilities 0x0
offset 2359296
size 2046336
align 2^14 (16384)
architecture armv7s
cputype CPU_TYPE_ARM
cpusubtype CPU_SUBTYPE_ARM_V7S
capabilities 0x0
offset 4407296
size 2046176
align 2^14 (16384)
바이너리 자체의 경우 ARM64 비트 명령어 세트를 사용합니다. 이는 대부분 32 비트와 호환되지만 완전히 다른 명령어 세트입니다. 이는 그래픽 프로그램 (NEON 명령어 및 레지스터 사용)에서 특히 중요합니다. 마찬가지로 CPU에는 더 많은 레지스터가 있으므로 프로그램 속도에 상당한 영향을 미칩니다. http://blogs.barrons.com/techtraderdaily/2013/09/19/apple-the-64-bit-question/?mod=yahoobarrons 에서 이것이 차이를 만드는지 여부 에 대한 흥미로운 토론 이 있습니다. 벤치마킹 테스트는 지금까지 명확하게 나타납니다.
otool -tV를 사용하면 어셈블리가 덤프되며 (XCode 5 이상이있는 경우), 명령어 세트 차이를 직접 확인할 수 있습니다. 대부분의 (전부는 아님) 개발자는 변경 사항에 대해 무관심한 상태를 유지합니다. 대부분의 경우 Obj-C (CG * API에도 불구하고)에 직접 영향을주지 않으며 낮은 수준의 포인터 처리로 더 많은 작업을 수행해야하기 때문입니다. 컴파일러는 마법과 최적화를 수행합니다.