히든클래스 (Hidden Class)
V8은 어떻게 동작하는가?과 이어진다.
ref https://ui.toast.com/posts/ko_20210909
JS 의 문제점
- 자바스크립트는 동적 타입 언어.
- 즉, 객체에서 속성을 즉시 추가하거나 제거 가능
- 그러나 이러한 접근방식은 자바스크립트 성능을 떨어뜨리는 동적조회를 더 필요로 하게 된다.
히든클래스의 작동 방식
- 새 객체 생성 시, V8엔진은 이에 대한 새로운 히든 클래스를 생성한다.
- 그 후, 새 프로퍼티를 추가해 동일한 객체를 수정하면 V8에서 이전 클래스의 모든 프로퍼티가 포함된 새로운 히든 클래스를 만들고 새로운 프로퍼티를 포함한다.
- 이 과정이 반복된다. 또 다시 객체에 프로퍼티를 추가하면, 동일한 과정이 수행되고..히든클래스가 생성되고, 이전 프로퍼티와 새 프로퍼티 모두 오프셋으로 포함된다.
장점?
- 사전형 탐색(딕셔너리 룩업)을 우회할 수 있고
- 유사한 객체가 생성되거나 수정될 때 이미 생성된 클래스를 사용 할 수 있다.