Tim*_*ser 3 java performance jvm
public class A {
private int a;
private static int b;
public A(int num) {
this.a = num;
this.b = num;
// which one is quickest?
this.computeA();
this.computeB();
}
public int computeA() {
return this.a * this.a;
}
public static int computeB() {
return b * b;
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,static变量b和方法上的修饰符是否对computeB()JVM上的运行时有任何积极的性能影响?
像大多数这些问题一样,你应该首先考虑清晰度,然后将表现放在第二位.使代码清晰简单,并且可能表现得相当好.
在清晰度方面,主要优点是明确表示您没有使用this该方法.这可以使重构方法更容易.
正如@OceanLife所提到的,应该避免使用可变的静态字段.静态字段就像单例,它们更难以进行单元测试并使线程安全.
虽然我会static尽可能地制作方法,但我会避免使用static字段,除非它们是不可变的.
static在一种方法上使用有两个名义性能优势
实际上,JIT可以优化大部分差异,但由于您的代码运行得足以进行优化,因此它可以产生很小的差异.
BTW运行你的代码足以进行优化将产生更多,更多的差异.
| 归档时间: |
|
| 查看次数: |
169 次 |
| 最近记录: |