SpiderMonkey의 인라인 캐싱: 단순한 캐싱을 넘어서
2025-09-14
이 글에서는 SpiderMonkey JavaScript 엔진의 인라인 캐싱(IC) 구현에 대해 자세히 설명합니다. 기존 캐싱과 달리 SpiderMonkey의 IC는 자기 수정 코드 기술입니다. 호출 사이트에 일련의 스텁을 삽입하여 입력 유형에 따라 효율적인 실행 경로를 동적으로 선택합니다. 첫 번째 호출은 대체 경로를 실행하고 결과에 따라 해당 스텁을 생성합니다. 동일한 유형의 후속 호출은 캐시에 적중하여 효율성이 크게 향상됩니다. 이 글에서는 JavaScript 덧셈을 예로 들어 IC의 작동 방식을 설명하고 SpiderMonkey의 최신 CacheIR 아키텍처에 대해서도 언급합니다. CacheIR은 서로 다른 컴파일러 간에 IC를 공유할 수 있도록 IC의 세부 정보를 추상화합니다.
개발
인라인 캐싱