크롬서 자바스크립트 더 빨라진다

일반입력 :2014/02/18 10:07

구글이 크롬 브라우저에 탑재된 V8 자바스크립트 엔진 성능을 높이기 위한 새 기능을 선보였다.

17일(현지시간) 미국 지디넷에 따르면, 구글은 최신 크롬 베타 버전을 통해 V8 자바스크립트 엔진에 동시 컴파일 기능을 투입했다.

V8 자바스크립트 엔진은 실행 전 자바스크립트를 기계어로 바꾸는 작업을 한다. 이때 자바스크립트 컴파일 작업이 메인 스레드를 차지하다보니, 자바스크립트 애플리케이션 성능이 떨어지는 현상이 발생한다.

크롬이 제공하는 새 V8 엔진은 컴파일 작업 시 중요한 부분을 백그라운드 스레드에서 따로 컴파일 한다. 전체 컴파일 시간을 단축시켜 웹앱 성능을 개선할 수 있다.

양 구오 구글 V8엔지니어는 블로그를 통해 자바스크립트 컴파일의 여러 단계를 설명했다.

그는 첫번째 컴파일 단계는 빠르지만, 그것은 코드 최적화에 초점을 맞추지 않고 그저 빠르게 착수하는 것이라며 매우 빈번하게 실행되는 코드 조각들은 별도의 최적화 컴파일러로 두번째로 변환된다라고 설명했다.

또 두번째 컴파일 패스는 많은 진화된 최적화 기술을 사용해 만들어졌으며, 첫번째 패스보다 더 많은 시간을 소비하지만 훨씬 더 빠르게 코드를 제공한다라고 덧붙였다.

구오 엔지니어는 자바스크립트 코드를 기계어로 변환한 뒤 실행하는 방식이 코드 조각이 클 경우 성가신 일이 될 수도 있다고 적었다. 게임처럼 복잡한 애플리케이션의 경우 중간중간 끊기거나 프레임이 삭제될 수 있다고도 강조했다. 동시 컴파일 기능이 이 문제를 해결하는 방법이란 것이다.

이어 넥서스5에서 맨드릴이란 벤치마크스위트를 돌렸을 때 모습을 시각화해 제시했다.

먼저 동시 컴파일 기능이 없는 V8 엔진의 결과를 보자. V8은 큰 덩어리의 코드를 최적화하는데, 이로 인해 600밀리초 이상의 실행 중지를 보였다.

관련기사

반면 동시 컴파일을 사용했을 경우 V8이 큰 덩어리의 코드를 최적화하지만 백그라운드 스레드를 사용한다. 실행은 컴파일 중에도 계속 이어지는 모습이다. 구오 엔지니어는 이를 통해 크롬이 더 부드러운 사용자경험을 제공하게 한다고 강조했다.

동시 컴파일 기능을 포함한 V8 엔진은 크롬 베타에 포함된 상태로 안정화단계를 거쳐 일반 버전에 탑재된다. 정확한 시점은 알려지지 않았다.