在Xcode中编译Mac应用程序与设置为i386 vs x86_64的Active Architecture(在主窗口左上角的下拉列表中选择)之间有什么区别?在项目的构建设置中,架构选项是标准(32/64位通用),32位通用和64位Intel.实际上,这些意味着什么以及如何决定?
假设一个目标是OS X 10.5及更高版本.我在Activity Monitor中看到,编译x86_64会导致应用程序使用的内存多于为i386编译的内存.有什么好处?我知道64位是"未来",但考虑到更高的内存使用率,选择32位是否有意义?
32/64位通用 - i386,x86_64,ppc
32位通用 - i386,ppc
64位英特尔 - 仅限64位英特尔
不再支持ppc64.
由于多种原因,x86_64二进制文件速度更快; 更快的ABI,更多的寄存器,在许多(大多数和所有新机器)机器上内核是64位和内核调用更快,等等...
虽然64位的内存开销与内存开销直接相关,但通常情况下,指针应用程序的数据结构的指针如何,请记住,32位应用程序会拖动所有框架的32位版本.如果你的系统是系统上唯一的32位应用程序,那么与64位版本相比,它将产生大量的开销.
64位应用程序也享受最新和最好的Objective-C ABI; 合成的ivars,非脆弱的ivars,统一的C++/ObjC异常,零成本@try块等......并且有许多优化只能在64位中实现.
| 归档时间: |
|
| 查看次数: |
15597 次 |
| 最近记录: |