Android:当计算量增加时,为什么整数计算比浮点计算慢得多?

时间:2017-08-30 15:34:16

标签: android mobile floating-point integer cpu-architecture

我观察到一个相当奇怪的现象:当我将所需的CPU计算量从1000万增加到几亿(大多数是乘法,加法和除法)时,如果我用浮点数计算它们,速度事实证明要快得多。但是,对于低于一定量且不那么极端的操作,整数计算确实比预期的更快。

为什么会发生这种情况有特殊原因吗?我怀疑它可能与浮点运算有关,当计算量显着增加时会自动并行化,而不是整数计算。请注意,我没有为应用程序显式执行多线程。我不是Android的专家,所以我想知道是否有任何Android专家或计算机架构专家可以启发我。

谢谢。

1 个答案:

答案 0 :(得分:2)

目前处理器内置了并行浮点指令(称为向量指令)。如果您正在进行大量的fp操作,它可能会优化您。有关内置CPU操作的列表,请参阅http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0802b/a64_simd_vector_alpha.html