由于所有智能手机(至少是我可以找到规格的那些)都采用32位处理器,因此我想在广泛计算中使用单精度浮点值会比双精度浮点值表现得明显更好。 但是,这似乎并不是情况。
即使我避免类型转换,并在可能的情况下使用FloatMath包,与基于double的方法相比,除了内存使用外,我几乎看不到任何性能提升。
我目前正在开发一个计算密集型的声音分析工具,每秒执行数百万次乘法和加法运算。 因为在32位处理器上进行双精度乘法需要几个时钟周期,而单精度只需要1个,所以我认为类型更改应该是显着的……但它并不是 :-(
这是有什么合理的解释吗? 是否由于Dalvik VM的工作方式造成的,还是其他原因呢?