为什么从Android的性能提示中删除了“仅仅需要Ints的地方呢?

从官方开发者文档中删除了“避免在您只需要Ints的地方引用”一节。 (请参阅为什么Android不会使用更多枚举?旧节内容)

为什么? Android虚拟机是否发生了变化,导致提示过时?

该文件的原始版本只是一堆偏见。 它已被重写为仅包含由实际基准备份的事实,并且在VM更新时更新。 您可以在http://code.google.com/p/dalvik/上find各种基准testing,以及我们用来优化核心库的一些基准testing。;

一个推测:

  • 像Hummingbird和Snapdragon这样的Gigahertz CPU现在已经很普遍了,而最初限制Dalvik VM的小规模小内存要求已经不再是真实的了。
  • 每个运输设备都使用JIT(2.2以上版本)。 枚举的类初始化器将运行得更快,这些值可能会被视为JIT时间常量,JIT可能会特别支持精简枚举类。
  • 代码真的是性能敏感的使用NDK,当Android 1.5发布时,它仍然是新的和未抛光的。 2.3中的NDK支持本地活动,允许几乎完全不受pipe理的游戏。

因此,对于GUI应用程序的相对普通的需求来说,枚举的开发时间好处远远超过额外的运行时间成本。

Elliott Hughes在他的博客上提供了关于重写文档的更多细节: http : //elliotth.blogspot.com/2010/09/java-benchmarks.html

这篇文章的后半部分解释说,Performance文档中的每一项声明都是以基准作为备份的。 以前版本的doc显然包含未经validation的声明,例如“避免枚举,因为它们太昂贵”。

Elliot Hugues在2011年的回答中表示,避免枚举的最初原因是出于性能的原因,如“处理性能”。 由于这个原因没有得到事实支持,它被从官方文件中删除。

它后来被添加,因为枚举添加更多的数据在内存中比使用整数。