다른 많은 이유가 있겠지만 요즘 다이내믹한 웹 문서를 볼때 이놈이 가진 V8 자바스크립트 엔진에 많은 성능향상의 이유가 있는듯 하다.
자바스크립트 파일을 로딩한 후 중간 코드가 아닌 머신코드로 컴파일 해서 올려버리고, 기존의 다이내믹 랭귀지에서 프로퍼티를 접근하기 위해 지원했던 Dictionary lookup을 배제하고 메모리 offset 기반으로 프로퍼티를 쌓아 올려서 바로 1번의 machine 연산으로 룩업이 가능하게 한듯 하다.
또한 Hidden Class를 만들어 특정 코드에서 읽은 프로퍼티 정보(힌트)를 기반으로 다른 클래스의 프로퍼티를 예측하는 방법을 쓰는거 같다.
크롬관련 문서들이 이미 공개가 되어 있으니 자세한건 전문가들이 분석해서 올려줄 것이라 생각한다.
이 크롬 관련 문서들을 보느라 아침부터 정신없고, V8이 프로그래밍 랭귀지 구현에 대한 또 다른 낚시줄이 될거 같다. 이쪽까지 호기심이 일면 큰일인데… ㅜㅜ
구글 크롬이 빠른 이유 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.