Open devSoyoung opened 4 years ago
// 최적화 됨 function doSomething() { return doSomethingElse(); } // 최적화 안됨 function doSomething2() { doSomethingElse(); } // 최적화 안됨 : 복귀 후 추가 작업하는 경우 function doSomething3() { return 1 + doSomethingElse(); } // 최적화 안됨 function doSomething4() { var result = doSomethingElse(); return result; }
재귀 호출 최적화 : 팩토리얼에서 마지막 곱셈을 파라미터로 전달하면 성능 향상을 제공함
// before function factorial(n) { if (n <= 1) { return 1; } else { // not optimized - must multiply after returning return n * factorial(n - 1); } }
// after function factorial(n, p = 1) { if (n <= 1) { return 1 * p; } else { let result = n * p; // optimized return factorial(n - 1, result); } }
ES6 이전
ES6 이후
Tail Call 최적화를 활용하는 방법
재귀 호출 최적화 : 팩토리얼에서 마지막 곱셈을 파라미터로 전달하면 성능 향상을 제공함
Reference