我听说在iPhone目标的设置中关闭“针对thumb的编译”来提高性能可能是个好主意。不过,我在查找此设置时遇到了一些问题。因为我在当前的项目中找不到它,所以我决定创建一个新的库(在那里我可以找到并设置它),并将我的文件复制到其中(同时还更新我正在使用的所有库)。
但是现在,这个设置似乎也从这个新项目中消失了。无论我选择哪个SDK,模拟器还是设备,设置都不会显示在目标设置中!然而,我似乎突然在“用户定义的”类别下仍然有一个名为GCC_THUMB_SUPPORT的变量。这是什么?
我尝试创建一个新的目标,但设置也不会在其中显示(甚至GCC_THUMB_SUPPORT也不会显示)。
发布于 2009-09-22 14:23:55
GCC_THUMB_SUPPORT是正确的变量。只需将其设置为NO即可禁用拇指代码生成。
一般的经验法则是,如果您的代码浮点繁重,则禁用它:)
更多关于here的信息。
更新:
针对THUMB指令集is no longer valid (实际上是从iPhone 3GS开始)编译的建议。
发布于 2009-11-02 18:03:03
我发现编译器设置("GCC 4.2 -代码生成“、"GCC 4.2 -语言”等)只有在活动SDK设置为Device时才会显示在Target info build设置窗口中--而"User-defined“类别仅在活动SDK为Simulator时才会显示。
是的,如果你正在处理大量的浮点数学运算(例如浮点音频处理),禁用Thumb编译对性能有很大的帮助。当然,这并不是万能的神奇加速(而且据说Thumb编译的代码在某些情况下可以运行得更快),因此您可能只会发现禁用Thumb只有在代码存在这种瓶颈时才有用。
发布于 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下的。

https://stackoverflow.com/questions/1460378
复制相似问题