gpt4 book ai didi

xcode - 在 Xcode 中编译 i386 与 x86_64 之间的差异?

转载 作者:行者123 更新时间:2023-12-04 11:44:50 24 4
gpt4 key购买 nike

在 Xcode 中编译 Mac 应用程序并将 Active Architecture 设置为 i386 与 x86_64(在主窗口左上角的下拉菜单中选择)有什么区别?在项目的build设置中,架构选项为标准(32/64 位通用)、32 位通用和 64 位英特尔。实际上,这些是什么意思以及如何决定?

假设一个目标是 OS X 10.5 及更高版本。我在事件监视器中看到,针对 x86_64 进行编译会导致应用比针对 i386 编译的应用使用更多内存。优势是什么?我知道 64 位是“ future ”,但考虑到更高的内存使用量,选择 32 位是否有意义?

最佳答案

32/64 位通用 -- i386、x86_64、ppc

32 位通用 -- i386,ppc

64 位 Intel -- 仅限 64 位 Intel

不再支持 ppc64。

由于多种原因,x86_64 二进制文件速度更快;更快的 ABI,更多的寄存器,在许多(大多数和所有新机器)机器上,内核是 64 位的,内核调用速度更快,等等......

虽然 64 位的内存开销通常与应用程序数据结构的指针重量直接相关,但请记住,32 位应用程序会拖累所有框架的 32 位版本。如果您的应用程序是系统上唯一的 32 位应用程序,则与 64 位版本相比,它会产生大量开销。

64 位应用程序还可以享受最新最好的 Objective-C ABI;合成的 ivars、非脆弱的 ivars、统一的 C++/ObjC 异常、零成本的 @try 块等......还有许多优化也只能在 64 位中实现。

关于xcode - 在 Xcode 中编译 i386 与 x86_64 之间的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3266902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com