http://s24.postimg.org/9y073weid/refactor_vs_non_refactor.png 这里是简单加法操作的重构和非重构代码执行时间的结果(以纳秒为单位)。1 到 5 是代码的连续运行。我的目的只是想知道将逻辑拆分成多个方法是否会导致执行速度变慢,这里的结果表明,是的,只是将方法放在堆栈上需要相当长的时间。
如果我做错了什么,我邀请以前对此进行过一些研究或想对此领域进行调查的人来纠正我,并从中得出一些结论性的结果。在我看来,是的,代码重构确实有助于使代码更加结构化和易于理解,但在实时游戏引擎等时间关键系统中,我不希望重构。
以下是我使用的简单代码:
package com.sim;
公共类 NonThreadedMethodCallBenchMark{
public static void main(String args[]){
NonThreadedMethodCallBenchMark testObject = new NonThreadedMethodCallBenchMark();
System.out.println("************Starting***************");
long startTime =System.nanoTime();
for(int i=0;i<900000;i++){
//testObject.method(1, 2); // Uncomment this line and comment the line below to test refactor time
//testObject.method5(1,2); // uncomment this line and comment the above line to test non refactor time
}
long endTime =System.nanoTime();
System.out.println("Total :" +(endTime-startTime)+" nanoseconds");
}
public int method(int a , int b){
return method1(a,b);
}
public int method1(int a, int b){
return method2(a,b);
}
public int method2(int a, int b){
return method3(a,b);
}
public int method3(int a, int b){
return method4(a,b);
}
public int method4(int a, int b){
return method5(a,b);
}
public int method5(int a, int b){
return a+b;
}
public void run() {
int x=method(1,2);
}
}