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

标签 android mobile floating-point integer cpu-architecture

我观察到一个比较奇怪的现象:当我把需要的CPU计算量从10+百万增加到几亿(大部分是乘加除法),如果我用float计算,速度竟然是要快得多。然而,对于低于一定数量(不是那么极端)的操作,整数计算确实更快,正如预期的那样。

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

谢谢。

最佳答案

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

关于Android:为什么当计算量增加时整数计算比浮点计算慢很多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45964499/

相关文章:

java - Android中如何压缩下载的图片并在需要时解压?

Android 2.3.3 包(我在下载什么?)

html - Angular Material 在移动设备上没有响应

c - 为什么相同的浮点常量在 Fortran 和 C 中打印不同?

opengl - 图形硬件上的 float 与 double

MATLAB:将 uint32(4 字节)值转换为相应的 IEEE 单精度浮点形式

android - 如何从 webview 打开的网页关闭 android webview?

android - Eclipse 和 Android 的简单版本控制

jquery - CSS3 Animate 它改变移动设备上某些元素的位置和宽度属性

php - 使用 css/php stylesswitcher 在移动和标准 View 之间来回切换