Javascript에서의 array

김민석·2021년 3월 4일
0

Immersive

목록 보기
11/30

https://www.voidcanvas.com/javascript-array-evolution-performance/
이곳을 참고하여 작성하였다.

자바스크립트의 배열은 실제로는 배열이 아니다.

배열이란

우선 배열은 연속적인 메모리 로케이션들의 묶음을 사용하여 값을 저장한다. 여기서 기억 해야할 점은 연속성인접성이다.

이 그림은 배열의 메모리 상태의 예시다.
이 배열은 4 bit로 이루어진 4개의 블록을 가지고 있다. 따라서 총 16 bit의 메모리 블록을 사용한다.
만약 이 상태에서 a[2]의 메모리 주소를 찾고자 한다면 아래와 같이 간단하게 계산 할 수 있다.

1201 + (2*4) = 1029


JS의 배열

반면, JS의 배열은 연결 리스트다.
따라서 위의 예시와는 다르게, 무조건 1201부터 탐색하며 a[2]를 찾아가야한다.


반면, 현대의 JS는 모든 요소가 동일한 타입을 가지고 있는 배열인 경우, 연속적으로 메모리를 할당한다.

또한, 강제로 인접 메모리 블록에 저장 할 수 있다고 한다.
자세한 것은 아래의 링크 참고.
MDN-Typed_arrays

0개의 댓글