浮动还是双重?

aho*_*der 29 memory floating-point performance android

当预先形成arithimic(+ - */%)时,哪个是更快,双倍还是浮动,并且为了内存的原因值得使用float吗?精度不是一个问题.

即使想到这一点,也要随意叫我疯了.只是好奇,因为我看到我正在使用的花车数量越来越大.

编辑1:这是在android下的唯一原因是因为这是我认为记忆很重要的地方; 我甚至不会问这个桌面开发.

Nic*_*ndo 26

两种类型的处理速度在现在的CPU中大致应该相同.

"使用可接受结果所需的精度."

有关问题已经在这里问了几次,这里有一个问题.

编辑:

在速度方面,更现代的硬件上浮动和双重没有区别.

请查看developer.android.com上的这篇文章.


小智 15

ADT v21 lint消息建议使用Double而不是Float,因为来自Froyo的Dalvik中的JIT(及时)优化(API 8及更高版本).

我正在使用FloatMath.sin,它在"解释问题"上下文菜单下使用以下内容建议使用Math.sin.它对我来说就像是关于double vs float而不仅仅是trig相关的一般消息.

"在旧版本的Android中,出于性能原因推荐使用android.util.FloatMath进行浮点运算.然而,在现代硬件上,双精度与浮动速度一样快(尽管它们需要更多内存),而在最新版本的Android中,由于JIT优化java.lang.Math的方式,FloatMath实际上比使用java.lang.Math慢.因此,如果你只针对Froyo及以上,你应该使用Math而不是FloatMath."

希望这可以帮助.


if_*_*one 6

我不建议快速操作,但我相信对浮点数的操作会更快,因为它们是32位而不是64位双打.

  • 我编写了代码来过滤图形.它使用花车并花了11秒.当我转换为使用双打时花了5秒钟.这是在Galaxy Note上. (9认同)
  • 在大多数现代建筑中,双打通常至少和浮子一样快,甚至更快 (3认同)

Dan*_*nte 6

http://developer.android.com/training/articles/perf-tips.html#AvoidFloat

避免使用浮点

根据经验,浮点数比Android设备上的整数慢约2倍.

在速度方面,更现代的硬件上浮动和双重没有区别.在空间方面,双倍大2倍.与桌面计算机一样,假设空间不是问题,您应该更喜欢双重浮动.

此外,即使对于整数,一些处理器也有硬件倍增但缺乏硬件鸿沟.在这种情况下,整数除法和模数运算在软件中执行 - 如果您正在设计哈希表或进行大量数学运算,则需要考虑.