JavaScript/함수형 프로그래밍과 JavaScript ES6+

range와 느긋한 L.range 테스트

느리지만 꾸준하게 2021. 8. 20. 12:59

이번에는 array로 모든 값을 평가한 후에 해당하는 array를 이터레이터로 만들어서 reduce를 통해 add를 하는 코드와

배열을 만들지 않고 바로 이터레이터를 만들어서 reduce를 통해 다 add를 하는 코드가 어느정도 효율성을 가지고 있는지 보자. 아주 큰 성능상의 차이는 나지않는 것을 알고있자.

 

테스트를 하는 간단한 함수를 만든다. 테스트이름을 받고, 얼마나 실행할지, 실행함수를 받는 함수를 정하고 

어떤 테스트인지를 정해주고 time만큼 실행하기 위해서 구현을 해준다.

<script>
    function test(name, time, f) {
        console.time(name);
        while (time--) f();
        console.timeEnd(name);
    }

test를 실행하면서 range를 먼저하고 10번정도 하겠다 정해놓고 함수를 전달하면서 실제로 reduce를 하는데 add를 할거고 range를 1000000정도 크기를 하겠다고 정한다. 아래와 같은 효율성 정도의 차이를 보여주고 있다.

    test('range', 10, () => reduce(add, range(1000000)))
    test('L.range', 10, () => reduce(add, L.range(1000000)))
</script>
: 0.567138671875 ms

: 0.091796875 ms

 

 

 

 

 

 

<출처 : 유인동 함수형 프로그래밍과 JavaScript ES6+>

https://www.inflearn.com/course/functional-es6/dashboard

 

함수형 프로그래밍과 JavaScript ES6+ - 인프런 | 강의

ES6+와 함수형 프로그래밍을 배울 수 있는 강의입니다. 이 강좌에서는 ES6+의 이터러블/이터레이터/제너레이터 프로토콜을 상세히 다루고 응용합니다. 이터러블을 기반으로한 함수형 프로그래밍,

www.inflearn.com