본문으로 건너뛰기

번뜩이는 빠른 파싱, 1부: 스캐너 최적화

· 약 9분
툰 페르와스트 ([@tverwaes](https://twitter.com/tverwaes)), 스캔들스 옵티마이저

JavaScript 프로그램을 실행하려면 V8이 이를 이해할 수 있도록 소스 텍스트를 처리해야 합니다. V8은 먼저 소스를 추상 구문 트리(AST)로 파싱합니다. AST는 프로그램 구조를 나타내는 객체 집합입니다. Ignition이 이 AST를 바이트 코드로 컴파일합니다. 이러한 파싱 + 컴파일 단계의 성능은 중요합니다. 컴파일이 완료되기 전에 V8은 코드를 실행할 수 없습니다. 이 블로그 게시물 시리즈에서는 파싱과 V8에서 초고속 파서를 제공하기 위해 수행한 작업에 대해 집중적으로 다룹니다.

V8 릴리즈 v7.4

· 약 7분
Georg Neis

매 6주마다 우리는 릴리즈 프로세스의 일환으로 새로운 V8 브랜치를 생성합니다. 각 버전은 크롬 베타 마일스톤 직전 V8의 Git 마스터에서 브랜칭됩니다. 오늘 우리는 V8 버전 7.4라는 최신 브랜치를 발표하게 되어 기쁩니다. 이 버전은 몇 주 후에 Chrome 74 Stable과 함께 출시되기 전까지 베타 버전으로 제공됩니다. V8 v7.4는 개발자들이 사용할 수 있는 여러 가지 유용한 기능들로 가득합니다. 이 게시물은 출시를 앞두고 주목할 만한 부분에 대한 미리보기를 제공합니다.

JIT-less V8

· 약 3분
Jakob Gruber ([@schuay](https://twitter.com/schuay))

V8 v7.4는 이제 런타임 실행 코드 메모리를 할당하지 않고 자바스크립트를 실행할 수 있습니다.

기본 설정에서, V8은 실행 가능한 메모리를 런타임에 할당하고 수정하는 능력에 크게 의존합니다. 예를 들어, TurboFan 최적화 컴파일러는 뜨거운 자바스크립트(JS) 함수에 대해 즉석에서 네이티브 코드를 생성하며 대부분의 JS 정규 표현식은 irregexp 엔진에 의해 네이티브 코드로 컴파일됩니다. 런타임에 실행 가능한 메모리를 생성하는 것은 V8의 속도를 높이는 요인 중 하나입니다.

V8 릴리즈 v7.3

· 약 3분
크레멘스 배커스, 컴파일러 관리자

매 6주마다 우리는 릴리즈 프로세스의 일부로 V8의 새로운 브랜치를 만듭니다. 각 버전은 Chrome 베타 마일스톤 직전에 V8의 Git master에서 분기됩니다. 오늘 우리는 최신 브랜치 V8 버전 7.3을 발표하게 되어 기쁩니다. 이 브랜치는 몇 주 후 Chrome 73 Stable과 함께 릴리즈될 때까지 베타 단계에 있습니다. V8 v7.3는 개발자 중심의 다양한 새로운 기능들로 가득합니다. 이 글에서는 릴리즈를 기대하며 주요 기능 몇 가지를 미리 살펴봅니다.

쓰레기 토크: 오리노코 가비지 컬렉터

· 약 11분
Peter ‘the garbo’ Marshall ([@hooraybuffer](https://twitter.com/hooraybuffer))

지난 몇 년 동안 V8 가비지 컬렉터(GC)는 많은 변화를 겪었습니다. 오리노코 프로젝트는 순차적으로 중단되는 가비지 컬렉터를 대부분 병렬적이고 동시적으로 실행 가능한 컬렉터로 변환시켰으며, 점진적 대체 방식도 포함했습니다.

V8 릴리스 v7.2

· 약 4분
Andreas Haas, 트랩 관리자

V8의 릴리스 프로세스에 따라 우리는 매 6주마다 새로운 브랜치를 생성합니다. V8의 Git 마스터에서 Chrome 베타 마일스톤 직전에 각 버전이 브랜치됩니다. 오늘 우리는 새로운 브랜치인 V8 버전 7.2를 발표하게 되어 기쁩니다. 이는 몇 주 동안의 Chrome 72 Stable과의 조정된 릴리스까지 베타 상태로 유지됩니다. V8 v7.2는 개발자를 위한 다양한 기능을 제공합니다. 이 포스트에서 주요 하이라이트에 대해 미리 살펴보겠습니다.

스프레드 요소의 속도 향상

· 약 7분
Hai Dang & Georg Neis

Hai Dang은 V8 팀에서 3개월 간의 인턴십 동안 [...array], [...string], [...set], [...map.keys()], 및 [...map.values()]의 성능을 개선하기 위해 작업했습니다. 그는 또한 Array.from(iterable) 역시 훨씬 빠르게 만들었습니다. 이 기사에서는 그의 수정 사항에 대한 상세 내용을 설명하며, 해당 변경 사항은 v7.2부터 V8에 포함되었습니다.

더 빠른 비동기 함수와 프로미스

· 약 15분
Maya Armyanova ([@Zmayski](https://twitter.com/Zmayski)), 항상 대기하는 기대자, 그리고 Benedikt Meurer ([@bmeurer](https://twitter.com/bmeurer)), 전문 성능 약속자

자바스크립트에서 비동기 처리는 전통적으로 빠르지 않다고 여겨졌습니다. 게다가 라이브 자바스크립트 애플리케이션, 특히 Node.js 서버를 디버그하는 일은 쉬운 일이 아닙니다. 특히나 비동기 프로그래밍에서는 그러합니다. 다행히도 시간이 지나면서 변화가 일어나고 있습니다. 이 글에서는 V8(및 어느 정도는 다른 자바스크립트 엔진들에서도)에서 비동기 함수와 프로미스를 최적화한 방법과 비동기 코드를 디버깅하는 경험을 향상시킨 방법을 설명합니다.

V8 릴리즈 v7.1

· 약 3분
Stephan Herhut ([@herhut](https://twitter.com/herhut)), 클론 클론에서 클론된 클론자

매 6주마다 우리는 릴리즈 프로세스의 일환으로 새로운 V8 브랜치를 생성합니다. 각 버전은 Chrome 베타 마일스톤 직전에 V8의 Git 마스터로부터 브랜치됩니다. 오늘 우리는 최신 브랜치 V8 버전 7.1을 발표하게 되어 기쁩니다. 이는 몇 주 내에 Chrome 71 안정 버전과 함께 출시될 때까지 베타 상태에 있습니다. V8 v7.1은 모든 종류의 개발자 친화적인 기능으로 가득합니다. 이 게시물은 릴리즈를 앞두고 몇 가지 주요 사항을 미리 살펴봅니다.

V8 릴리스 v7.0

· 약 3분
Michael Hablich

매 6주마다 우리는 릴리스 프로세스의 일환으로 새로운 V8 브랜치를 만듭니다. 각 버전은 Chrome Beta 마일스톤 직전에 V8의 Git 마스터에서 브랜치됩니다. 오늘 우리는 크롬 70 안정판과의 협력으로 몇 주 후 출시될 때까지 베타 상태에 있는 V8 버전 7.0라는 최신 브랜치를 발표하게 되어 기쁩니다. V8 v7.0에는 다양한 개발자들이 활용할 수 있는 도구들이 가득합니다. 이 포스팅에서는 릴리스에 앞서 몇 가지 주요 기능을 미리 만나볼 수 있습니다.