본문으로 건너뛰기

점화를 점화 해석기로 시작하기

· 약 3분
로스 맥일로이, V8 점화 시동기

V8 및 기타 현대 자바스크립트 엔진들은 스크립트를 실행 직전에 네이티브 머신 코드로 즉시(JIT) 컴파일하여 속도를 얻습니다. 코드가 처음에는 기본 컴파일러에 의해 컴파일되며, 이는 최적화되지 않은 머신 코드를 빠르게 생성할 수 있습니다. 컴파일된 코드는 실행 중 분석되며, 필요에 따라 더 고급의 최적화 컴파일러로 동적으로 다시 컴파일되어 최상의 성능을 제공합니다. V8에서는 이러한 스크립트 실행 파이프라인이 다양한 특수 사례와 조건을 포함하고 있어 기본 컴파일러와 Crankshaft 및 TurboFan이라는 두 개의 최적화 컴파일러 사이를 전환하기 위한 복잡한 메커니즘이 필요합니다.

V8가 BlinkOn 6 컨퍼런스에서

· 약 2분
V8 팀

BlinkOn은 Blink, V8 그리고 Chromium 기여자들이 반년마다 열리는 모임입니다. BlinkOn 6는 6월 16일과 6월 17일 뮌헨에서 열렸습니다. V8 팀은 아키텍처, 설계, 성능 개선 및 언어 구현과 관련된 여러 발표를 진행했습니다.

V8 릴리스 v5.3

· 약 3분
V8 팀

약 6주마다, 릴리스 프로세스의 일환으로 V8의 새 브랜치를 생성합니다. 각 버전은 Chrome Beta 마일스톤을 위한 Chrome 브랜치 직전에 V8의 Git 마스터에서 분기됩니다. 오늘 우리는 우리의 새로운 브랜치 V8 버전 5.3을 발표하게 되어 기쁩니다. 이는 Chrome 53 Stable과 조정하여 릴리스될 때까지 베타 상태에 있을 예정입니다. V8 v5.3은 개발자에게 다양한 기능을 제공하며, 몇 주 후 릴리스에 앞서 주요 사항의 미리보기를 제공합니다.

V8 릴리즈 v5.2

· 약 2분
V8 팀

약 6주마다 릴리즈 프로세스의 일환으로 V8의 새 브랜치를 생성합니다. 각 버전은 Chrome이 Chrome Beta 마일스톤을 위한 브랜치를 분기하기 직전에 V8의 Git 마스터에서 분기됩니다. 오늘 우리는 최신 브랜치인 V8 버전 5.2를 발표하게 되어 기쁩니다. 이 브랜치는 Chrome 52 안정 버전과 협력하여 릴리즈될 때까지 베타 상태에 있을 것입니다. V8 5.2는 개발자에게 유용한 다양한 기능으로 가득 차 있으므로 몇 주 후에 릴리즈를 기대하며 몇 가지 주요 내용을 미리 소개해 드리고자 합니다.

ES2015, ES2016, 그리고 그 이후

· 약 7분
V8 팀, ECMAScript 열성 팬

V8 팀은 JavaScript가 점점 더 많은 표현력을 갖춘 잘 정의된 언어로 발전하는 것을 중요시하며, 이를 통해 빠르고 안전하며 올바른 웹 애플리케이션 작성이 쉬워지도록 합니다. 2015년 6월, TC39 표준 위원회에 의해 ES2015 사양이 승인되며 JavaScript 언어에 대한 단일 업데이트로는 가장 큰 규모의 변경이 이루어졌습니다. 새 기능에는 클래스, 화살표 함수, 프라미스, 이터레이터/제너레이터, 프록시, 특수 심볼, 및 추가적인 문법 설탕이 포함됩니다. TC39는 새로운 사양의 출현 속도를 높이기 위해 노력하며, 2016년 2월에 ES2016 후보 초안을 공개하였으며 올 여름 최종 승인됩니다. ES2015 업데이트만큼 광범위하지는 않지만 ES2016은 지수 연산자Array.prototype.includes를 도입한 점이 주목됩니다.

V8 릴리스 v5.1

· 약 3분
V8 팀

V8 릴리스 프로세스의 첫 번째 단계는 약 6주마다 Chrome 베타 마일스톤을 위해 Chromium이 분기되기 직전에 Git 마스터에서 새 분기를 만드는 것입니다. 우리의 최신 릴리스 분기는 V8 v5.1이며, Chrome 51 Stable과 함께 안정적인 빌드를 릴리스할 때까지 베타 상태를 유지할 것입니다. 이번 V8 버전에서 개발자들이 주목해야 할 새로운 기능을 소개합니다.

Jank Busters Part Two: Orinoco

· 약 5분
the jank busters: Ulan Degenbaev, Michael Lippautz, and Hannes Payer

이전 블로그 게시글에서 우리는 가비지 컬렉션이 부드러운 브라우징 경험을 방해하며 발생하는 잉크 문제를 소개했습니다. 이 블로그 게시글에서는 새로운 V8 가비지 컬렉터인 _Orinoco_를 구축하기 위한 세 가지 최적화를 소개합니다. Orinoco는 대부분 병렬적이고 동시적 가비지 컬렉터를 엄격한 세대 경계를 넘어 구현함으로써 가비지 컬렉션 잉크와 메모리 소비를 줄이는 동시에 높은 처리량을 제공할 수 있다는 아이디어를 바탕에 두고 있습니다. Orinoco를 별도의 가비지 컬렉터로서의 플래그 뒤에 구현하는 대신, 즉각적으로 사용자에게 도움을 줄 수 있도록 Orinoco의 기능들을 V8의 최상위 트리에 점진적으로 배포하기로 결정하였습니다. 이번 글에서 논의된 세 가지 기능은 병렬 압축, 병렬 기억 집합 처리, 및 블랙 할당입니다.

V8 릴리스 v5.0

· 약 2분
V8 팀

V8 릴리스 프로세스의 첫 번째 단계는 크롬 베타 마일스톤을 위해 Chromium이 분기하기 직전에 Git 마스터에서 새 브랜치를 만드는 것입니다(약 6주마다). 우리의 최신 릴리스 브랜치는 V8 v5.0이며, 이 브랜치는 Chrome 50 Stable과 함께 안정적인 빌드를 릴리스하기 전까지 베타 상태를 유지합니다. 이번 V8 버전에서 새롭게 개발자에게 제공되는 기능을 강조하여 소개합니다.

V8에서 WebAssembly의 실험적 지원

· 약 3분
Seth Thompson, WebAssembly 책임자

WebAssembly의 포괄적인 개요와 미래의 커뮤니티 협력을 위한 로드맵은 Mozilla Hacks 블로그의 A WebAssembly Milestone를 참조하세요.

2015년 6월부터 Google, Mozilla, Microsoft, Apple 및 W3C WebAssembly 커뮤니티 그룹의 협력자들은 설계, 명세화, 및 WebAssembly의 구현(1, 2, 3, 4)에 열심히 노력해왔습니다. WebAssembly는 웹을 위한 새로운 실행 환경 및 컴파일 타겟으로, 메모리 안전 샌드박스 내에서 거의 네이티브 속도로 실행되도록 설계된 소형 이진 형식으로 인코딩된 저수준 이동 가능한 바이트 코드입니다. 기존 기술의 진화로서 WebAssembly는 웹 플랫폼에 긴밀히 통합되어 있으며, 네트워크에서 다운로드 속도가 더 빠르고 asm.js라는 JavaScript의 저수준 하위 집합보다 초기화가 더 빠릅니다.

RegExp lookbehind assertions

· 약 3분
Yang Guo, 정규 표현식 엔지니어

ECMA-262 사양의 세 번째 버전과 함께 도입된 정규 표현식은 1999년부터 JavaScript의 일부였습니다. 기능과 표현력에서 JavaScript의 정규 표현식 구현은 다른 프로그래밍 언어와 대략 비슷한 수준을 보입니다.