在iPhone上浮动转换的最快int是什么?

时间:2009-09-22 00:10:33

标签: iphone casting floating-point integer

我正在将一些Int16s和Int32s转换为浮动然后再返回。

我只是使用直接演员,但这样做每秒44100次(任何猜测是什么?:)

演员效率高吗?可以更快地完成吗?

P.S Compile for thumb已关闭。

2 个答案:

答案 0 :(得分:1)

演员效率高吗?在你的情况下,我猜它足够有效。

可以更快地完成吗?也许......但值得努力吗?您是否对其进行了基准测试并发现了由于演员操作导致的性能问题?

如果您在使用浮点示例数据进行数学上非常重要的事情, 如果演员阵容成为一个重要的瓶颈,我会感到非常惊讶!

答案 1 :(得分:1)

只有两种方法可以了解。

1)阅读编译器生成的代码,以便在您的案例中提升浮点数。

2)测量编译器生成的代码与其他选项的性能。

要做前者,请将SDK设置为Device,将Active Architecture设置为arm,然后选择Build>显示汇编代码。然后阅读编译器生成的代码。

如果您比编译器更聪明,那么您可以编写自己的汇编代码并使用它。赔率是你不是。

如果您正在进行多次操作,仪器将会很好地向您展示它所采用的处理器样品数量。但Jim的观点是有效的,你不应该把它视为没有用的:在一个涉及浮点数的数学运算中,编译器类型提升是你担心的最少。芯片的构建是为了在两到三个周期内完成,编译器通常会设法实现这一目标。但是你正在进行的效果处理可能需要数千次的周期。促销将在噪音中消失。