1월 23일에 공개되는 모질라 파이어폭스 브라우저 58 버전에 웹어셈블리(WebAssembly) 포터블 코드 포맷을 더 빠르게 실행하는 새로운 컴파일 기술이 적용된다.
성능 향상의 비밀은 스트리밍 컴파일이다. 콘텐츠를 다운로드하는 중에도 브라우저 내에서 웹어셈블리 코드를 컴파일하는데, 컴파일을 더 빨리 시작하는 만큼 빨리 끝낼 수 있다. 이 새 기본 컴파일러를 이용하면 기존의 컴파일러 최적화 기능을 사용할 때보다 컴파일 속도가 10~15배 더 빨라진다고 모질라 측은 설명했다.
스트림과 투티어 컴파일을 결합하는 이 방식을 통해 웹어셈블리 코드는 네트워크를 통해 전송하는 것보다 더 빠르게 컴파일된다. 모질라의 수석 에반젤리스트 린 클락은 "데스크톱 컴퓨터의 경우 웹어셈블리 코드를 초당 30~50MB 컴파일할 수 있다. '평균적인' 모바일 기기에서도 시간당 8MB를 컴파일하는데, 이는 어떤 모바일 네트워크에서의 다운로드 속도보다 더 빠른 것이다"라고 말했다.
클락에 따르면 웹어셈블리 디코딩은 자바스크립트를 파싱하는 것보다 더 간단하고 빠르다. 이 디코딩과 컴파일은 여러 스레드로 나눌 수 있는데, 기본 컴파일 코드가 컴파일을 위해 잠시 멈추지 않고도 메인 스레드에서 바로 작업을 시작할 수 있다. 동시에 다른 스레드는 코드의 더 최적화된 버전으로 작업을 하고, 이후에 해당 코드 내에서 전환할 수 있어 결과적으로 더 빨라진다.
모질라는 앞으로 첫 화면에서의 디코딩과 컴파일, HTTP 캐시 내에서 머신 코드 결과에 대한 캐싱 등을 추가로 구현할 예정이다. 이를 이용하면 특정 URL을 요청했을 때 미리 컴파일된 머신 코드를 전송해 페이지를 불러들이는 시간을 줄이 수 있다. 파이어폭스 나이틀리 버전이나 베타 버전을 사용하는 개발자는
웹사이트에서 다운로드해 자신의 기기에서 이 기술을 테스트할 수 있다. ciokr@idg.co.kr