调用方法时会创建线程堆栈的帧,并且创建堆栈帧会对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..
}
}
答案 0 :(得分:2)
方法调用开销远远不足以保证任何过早优化/担心性能。它绝对不足以阻止你创建和调用具有良好语义含义的方法。
另外,编译器甚至可以内联它们。
购买更好的硬件几乎总是更便宜,然后处理以更好性能名义引入的错误。这是Java的许多方面背后的一种想法(想想数组边界检查)。