Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 재귀 및 반복 계승 함수의 성능 비교

<시간/>

우리는 두 개의 자바스크립트 함수를 작성할 것입니다. 두 함수의 역할은 숫자를 받아서 팩토리얼을 반환하는 것입니다.

첫 번째 함수는 for 루프 또는 while 루프를 사용하여 계승을 계산해야 합니다. 반면 두 번째 함수는 재귀 접근 방식을 사용하여 계승을 계산해야 합니다.

마지막으로, 우리는 많은 반복에 걸쳐 이러한 함수에 걸리는 시간을 비교해야 합니다.

예시

다음은 코드입니다 -

const factorial = (num = 1) => {
   let result = 1;
   for (let i = 2; i <= num; i += 1) {
      result *= i;
   }
   return result;
}
const factorialRecursive = (num = 1) => {
   if(num > 1){
      return num * factorialRecursive(num - 1);
   }else{
      return 1;
   }
};
const ITERATIONS = 100000000;
const num = 12;
console.time('Looping Approach');
for(let i = 0; i < ITERATIONS; i++){
   factorial(num);
};
console.timeEnd('Looping Approach');
console.time('Recursive Approach');
for(let j = 0; j < ITERATIONS; j++){
   factorialRecursive(num);
};
console.timeEnd('Recursive Approach');

출력

다음은 콘솔의 출력입니다 -

Looping Approach: 886.720ms
Recursive Approach: 6526.203ms

이 시간은 비율이 거의 동일하게 유지되기 때문에 기계마다 다릅니다.