iPhone上的双重浮动
我刚刚听说iPhone不能做双本机,从而使他们慢得多,正常的浮动。
这是真的? 证据?
我对这个问题非常感兴趣,因为我的程序需要高精度的计算,而且我将不得不在速度上妥协。
iPhone可以在硬件上进行单精度和双精度运算。 在1176(原始iPhone和iPhone3G)上,它们的运行速度大致相同,但是您可以在caching中容纳更多的单精度数据。 在Cortex-A8(iPhone3GS,iPhone4和iPad)上,单精度algorithm是在NEON单元上完成的,而不是VFP,而且速度要快得多。
如果你正在做密集的浮点计算,确保在你的armv6的编译设置中closures拇指模式。
这个幻灯片给出了为什么没有好的浮点以及为什么有(vector浮点单位)的洞察力。 显然,重要的是你检查影响是否浮点支持的“拇指模式”。 这并不总是一个改进。 它显示了如何在汇编代码中find正确的指令。
这也取决于你想要运行你的代码的手机版本 。 最近一次在做浮点math方面似乎“更有能力”。
编辑:这里有一个有趣的阅读在与VFP和NEON SSE ARM的浮点优化 。
ARM1176JZF-S手册说它支持双精度浮点数。 你应该保持良好的状态。 这是一个PDF文档的链接 。 后来的iPhone是Cortex芯片,当然不应该是有能力的。