关于性能的神话很多,有些可能在几年前是正确的,而在没有JIT的VM上可能仍然正确。
Android文档(请记住,Android没有JVM,而是Dalvik
VM)曾经说过,在接口上调用方法要比在类上调用方法慢,因此它们有助于传播神话(这也是可能的)在Dalvik
VM上打开JIT之前,速度较慢)。该文档现在会说:
表现神话
本文档的先前版本提出了各种误导性主张。我们在这里解决其中一些问题。
在没有JIT的设备上,通过具有确切类型的变量而不是接口来调用方法的效率确实更高。(因此,例如,即使在两种情况下,地图都是HashMap,在HashMap地图上调用方法也比Map地图便宜。)事实并非如此,它慢了2倍;实际差异要慢6%。此外,JIT使两者实际上无法区分。
资料来源:为Android上的性能而设计
对于JVM中的JIT可能同样如此,否则会很奇怪。



