[Korean FE Article] 자바스크립트 엔진이 뛰어난 성능을 달성하는 방법
글 링크 : https://velog.io/@sehyunny/how-js-engine-achieve-great-performance
소개
자바스크립트 엔진은 우리가 작성한 자바스크립트 코드를 해석하고 실행하는 역할을 합니다. 대표적인 자바스크립트 엔진으로는 크롬의 V8, 사파리의 Webkit이 있습니다. 이 글에서는 자바스크립트 엔진이 성능을 최적화하기 위해 사용하는 기술에 관해 설명하고 있습니다. 평소에 자바스크립트 엔진의 동작 방식에 대해 궁금하셨다면, 이번 기회에 자세히 알아보면 어떨까요? 🤓
tl;dr
핫 코드(hot code) : 자바스크립트 엔진은 함수가 여러 번 실행되어 핫(hot) 상태임이 감지되면 이를 최적화 컴파일러에 넘겨줍니다. 최적화 컴파일러는 이전 실행에 근거한 추측을 통해 여러 최적화 기법을 시행합니다.
히든 클래스(hidden class) : 자바스크립트 엔진은 히든 클래스를 사용하여 객체의 형태를 추적합니다. 이는 동적으로 객체의 속성이 변경되는 자바스크립트에서 속성 탐색 비용을 절감하도록 도와줍니다.
인라인 캐시(inline cache) : 자바스크립트 엔진은 객체의 히든 클래스와 함께 조회 결과(속성 이름과 인덱스의 맵핑)를 인라인 캐시에 저장합니다. 이를 통해 객체에 대한 속성 접근을 최적화 할 수 있습니다.
인라이닝(inlining) : 인라이닝은 함수 호출을 호출된 함수의 구현으로 대체하는 방법입니다. 이를 통해 불필요한 함수 호출이 제거되고, 자바스크립트 엔진은 함수에 대한 추가 정보를 제공받을 수 있습니다.