코드 문제를 풀다가 Infinity에 대해 궁금한 점
Q1. Infinity는 무한대를 나타내는 숫자 값으로 알고 있는데, 이를 사용했을 때 실행 속도면에서
더 느리게 나오는 게 아닌가?
● Infinity에 대한 설명 :
- 전역 객체의 속성이며 전역 범위의 변수이다.
- 다른 어떤 수보다 더 크다.
- 숫자 데이터 타입으로 분류된다.
● 언제 사용하는가?
○ 최솟값 및 최댓값 계산 :
- 'Infinity' or '-Infinity'를 초기값으로 설정하여 배열이나 데이터 구조에서 가장 큰 값 또는 작은 값을
효율적으로 찾을 수 있다.
○ 조건 비교 :
- 특정 조건에서 임의의 큰 숫자를 대체할 수 있다.
→ Math.min(), Math.max() 사용할 때
실행 속도에 영향을 미치는가?
● 일반적인 사용에서
- Infinity는 JavaScript 엔진(V8, SpiderMonkey 등)에서 숫자 상수로 처리되기 때문에
계산이나 비교 연산에서는 성능 저하가 일어나지 않음
- 즉, 단순히 숫자와 동일하게 동작하기 때문에 계산 비용은 매우 낮음
● 초기화 할 때는?
- 'Infinity'를 변수 초기화에 사용할 시 일반적인 숫자를 사용하는 것과 동일하기 때문에
무한대를 초기화한다고 해서 성능을 저하시키지는 않음.
● 대규모 데이터를 처리할 때는?
- 대규모 데이터셋에서 반복적으로 조건 비교를 수행할 경우에는 'Infinity'가 더 읽기 쉽고
오히려 유지보수에 유리함
→ Number.MAX_VALUE 보다는 더 좋다. (물론 예외는 언제나 있다)
결론
● 최초 의문점이었던 실행 속도에 대한 영향은 거의 없다.
● 애초에 JavaScript 엔진에서 'Infinity'라는 상수는 효율적으로 처리하도록 설계되었다.
● 성능이 중요한 대규모 연산에서 코드 구조와 알고리즘 최적화가 더 중요한 요소이기 때문에
Infinity 사용으로 발생하는 연산 속도는 매우 미미하다.
'Programming Language > Javascript 공부기록' 카테고리의 다른 글
[JavaScript] 4. callback (0) | 2024.11.08 |
---|---|
[JavaScript] 3. this (0) | 2024.11.06 |
[JavaScript] 2. 일급 객체, Map, Set (1) | 2024.11.05 |
[JavaScript] 1. es6 문법 (0) | 2024.11.04 |