首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于thumb的iPhone编译

用于thumb的iPhone编译
EN

Stack Overflow用户
提问于 2009-09-22 14:19:57
回答 3查看 7.8K关注 0票数 8

我听说在iPhone目标的设置中关闭“针对thumb的编译”来提高性能可能是个好主意。不过,我在查找此设置时遇到了一些问题。因为我在当前的项目中找不到它,所以我决定创建一个新的库(在那里我可以找到并设置它),并将我的文件复制到其中(同时还更新我正在使用的所有库)。

但是现在,这个设置似乎也从这个新项目中消失了。无论我选择哪个SDK,模拟器还是设备,设置都不会显示在目标设置中!然而,我似乎突然在“用户定义的”类别下仍然有一个名为GCC_THUMB_SUPPORT的变量。这是什么?

我尝试创建一个新的目标,但设置也不会在其中显示(甚至GCC_THUMB_SUPPORT也不会显示)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-09-22 14:23:55

GCC_THUMB_SUPPORT是正确的变量。只需将其设置为NO即可禁用拇指代码生成。

一般的经验法则是,如果您的代码浮点繁重,则禁用它:)

更多关于here的信息。

更新:

针对THUMB指令集is no longer valid (实际上是从iPhone 3GS开始)编译的建议。

票数 14
EN

Stack Overflow用户

发布于 2009-11-02 18:03:03

我发现编译器设置("GCC 4.2 -代码生成“、"GCC 4.2 -语言”等)只有在活动SDK设置为Device时才会显示在Target info build设置窗口中--而"User-defined“类别仅在活动SDK为Simulator时才会显示。

是的,如果你正在处理大量的浮点数学运算(例如浮点音频处理),禁用Thumb编译对性能有很大的帮助。当然,这并不是万能的神奇加速(而且据说Thumb编译的代码在某些情况下可以运行得更快),因此您可能只会发现禁用Thumb只有在代码存在这种瓶颈时才有用。

票数 3
EN

Stack Overflow用户

发布于 2011-03-21 06:56:52

ARM的标准指令集是4字节。使用"Compile for Thumb",编译器可以使用2字节的指令。这导致了一个小得多的库,但也是一个较慢的库(有一些争议)。更关键的是,在ARMv6下运行存在一些问题。在我们的例子中,我们不能从Monotouch生成稳定的输出(在MT4.0 alpha中修正)。在Xcode中,您可以通过单击Target,在Build下查找并搜索"thumb“来找到该设置。我的是在“GCC 4.2 -代码生成”下的,但有时也是在LVVM -- GCC 4.2下的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1460378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档