我刚刚听说iphone本身不能做双重操作,因此比普通浮动慢得多。

这是真的吗?证据?

我对这个问题很感兴趣,因为我的程序需要高精度的计算,而且我必须在速度上妥协。

有帮助吗?

解决方案

iPhone可以在硬件中进行单精度和双精度算术。在1176(原始的iPhone和iPhone3G)上,它们以大致相同的速度运行,但您可以在缓存中容纳更多的单精度数据。在Cortex-A8(iPhone3GS,iPhone4和iPad)上,NEON单元而不是VFP上进行单精度算术,速度更快。

如果您正在进行密集的浮点计算,请确保在armv6的编译设置中关闭拇指模式。

其他提示

此幻灯片放映深入了解为什么没有好的浮点以及为什么存在(向量浮点单元)。显然,检查“拇指模式”非常重要。这会影响浮点支持是否打开。这并不总是一种改进。它显示了如何在汇编代码中找到正确的指令。

它还取决于您要运行代码的手机的哪个版本。最近的一个似乎“更有能力”。在做浮点数学。

编辑:这是关于使用VFP和NEON SSE的ARM上的浮点优化的有趣读物。

ARM1176JZF-S手册说它支持双精度浮点数。你应该保持良好状态。这是一个链接到PDF文档。后来的iPhone是Cortex芯片,当然不应该少用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top