Iva*_*hov 15 java performance final
我的问题主要是关于表现.编译器更清楚地知道,例如,在对象实例化之后,某些变量未被修改.那么,为什么要打扰决赛呢?
我认为可能会有许多结构/逻辑原因,但从性能的角度来看呢?有关系吗?
谢谢,
Lau*_*ves 21
在现代 JVM中,final 不应该影响性能.对于私有字段尤其如此,但即使对于非私有字段,JIT也可以优化非最终字段,因为它们是最终的,然后如果加载一些实际上修改字段的代码则进行去优化.
也就是说,使用final的主要原因不是性能,而是使代码更易于维护.通过最终制作字段,您可以减少代码中"移动部件"读取器的数量,从而更容易推理代码.
如果该字段是任何东西private,则JVM将始终必须准备好在某个时间加载尚未遇到的类并开始修改它.因此,对于那些字段,明确声明它们final可能允许在JIT中进行更强的优化.如果JIT一次只查看一个方法,私有字段甚至可能是这样.
另一方面,final局部变量不能在字节码编译中存活,因此应该没有性能影响.
| 归档时间: |
|
| 查看次数: |
5229 次 |
| 最近记录: |