可能重构会对java性能产生负面影响吗?

时间:2017-01-26 13:52:32

标签: java performance jvm refactoring

调用方法时会创建线程堆栈的帧,并且创建堆栈帧会对java程序的性能产生负面影响。 我想知道它有多大的影响?

据我所知,重构代码通常会导致将方法调用分成多个方法调用,我认为这最终会导致增量方法调用计数。 那么,使用分离方法调用进行重构的方式是否会对要重构的java程序的性能产生负面影响呢?

例如:

重构之前:

public class MyClassA {
    public void doTask1(){
       // here is very verbose code
    }
}

重构后:

public class MyClassA {
    public void doTask1(){
        taskPart1();
        taskPart2();
        taskPart3();
    }
    public void taskPart1(){
        // do something that used to be in doTask1..
    }
    public void taskPart2(){
        // do something that used to be in doTask1..
    }
    public void taskPart3(){
        // do something that used to be in doTask1..
    }
}

1 个答案:

答案 0 :(得分:2)

方法调用开销远远不足以保证任何过早优化/担心性能。它绝对不足以阻止你创建和调用具有良好语义含义的方法。

另外,编译器甚至可以内联它们。

购买更好的硬件几乎总是更便宜,然后处理以更好性能名义引入的错误。这是Java的许多方面背后的一种想法(想想数组边界检查)。