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

原文 标签 android mobile floating-point integer cpu-architecture

我观察到一个很奇怪的现象:当我将所需的CPU计算量从10+百万增加到几亿(大多数是乘法,加法和除法)时,如果我以浮点数进行计算,那么速度会很快快点。但是,对于低于一定数量(不是很极端)的运算,整数计算的确确实比预期的要快。

发生这种情况是否有特定原因?我怀疑这可能与浮点运算在计算量显着增加时自动并行化有关,而与整数计算无关。请注意,我没有明确地为应用程序执行多线程。我不是Android方面的专家,所以我想知道是否有任何android pro或计算机架构专家可以启发我。

谢谢。

最佳答案

如今,处理器已经内置了并行浮点指令(称为矢量指令)。如果您要执行许多fp操作,则可能会对这些操作进行优化。有关内置CPU操作的列表,请参见http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0802b/a64_simd_vector_alpha.html

相关文章:

android - 使用Android中的Realm更新表中的多行

javascript - Firefox移动错误控制台丢失

css - 我在div中的最后一个元素溢出,因此只有一半的元素可见

c - 如何使小数的值仅以数字显示?

python - Python C ++浮点数学表示错误

python - 使用numpy读取具有Fortran格式的小浮点数的文件

java - 在Android中,如何从另一个Activity引用实例化的Activity对象?

java - onDataChange永远不会执行

android - 无法访问SD卡上APK中的资源。

html - Galaxy Nexus手机是否存在已知的网站兼容性问题?