V8 Hidden Class

자바스크립트는 프로토타입 기반의 언어
클래스라는 것은 없으며 객체는 복제 과정을 통해 생성
 
딕셔너리를 이용해서 메모리 상에서 객체 속성의 위치를 찾아내는 건 비효율적
V8에서는 hidden classe이용
고정 객체 레이아웃과 유사하게 작동하는데 다만 런타임에 생성된다는 차이점
 
notion image
notion image
notion image
어떤 객체에 새로운 속성이 추가될 때마다 오래된 히든클래스는 새로운 히든 클래스에 대한 전환 경로로 업데이트됩니다
 
속성 할당 순서 다르면 다른 히든클래스 사용하므로 맞춰주자
 
 
히든클래스 전환이 중요한 이유
  • 히든 클래스가 같은 방식으로 생성된 객체들 사이에 공통으로 사용
  • 최적화 코드도 모두 동일
 
 
 

Recommendations