본문으로 건너뛰기

V8에서 `DataView` 성능 개선

· 약 7분
Théotime Grohens, <i lang="fr">Data-Vue의 과학자</i>, 그리고 Benedikt Meurer ([@bmeurer](https://twitter.com/bmeurer)), 전문 성능 전문가

DataViews는 JavaScript에서 저수준 메모리 접근을 수행할 수 있는 두 가지 방법 중 하나입니다. 다른 하나는 TypedArrays입니다. 지금까지 V8에서 DataViews는 TypedArrays보다 덜 최적화되어 그래픽 집약적인 작업이나 이진 데이터 디코딩/인코딩 시 성능이 저하되었습니다. 이러한 이유는 주로 역사적인 선택에 기인한 것으로, 예를 들어 asm.jsTypedArrays를 선택하고 DataViews를 제외했기 때문에 엔진들이 TypedArrays 성능에 집중하도록 장려됐습니다.

V8 출시 10주년 기념

· 약 11분
Mathias Bynens ([@mathias](https://twitter.com/mathias)), V8 역사가

이번 달은 Google Chrome과 V8 프로젝트가 출시된 지 10주년이 되는 달입니다. 이 글은 V8 프로젝트의 지난 10년 동안 주요 이정표와 프로젝트가 여전히 비밀로 유지되었던 초기 시절에 대한 개요를 제공합니다.

Liftoff: V8에서 WebAssembly의 새로운 기본 컴파일러

· 약 12분
Clemens Backes, WebAssembly 컴파일의 대가

V8 v6.9에는 WebAssembly의 새로운 기본 컴파일러인 Liftoff가 포함되어 있습니다. Liftoff는 데스크탑 시스템에서 기본적으로 활성화되어 있습니다. 이 글에서는 다른 컴파일 단계 추가의 동기를 상세히 설명하고 Liftoff의 구현 및 성능에 대해 설명합니다.

내장 빌트인

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

V8 내장 함수(빌트인 함수)는 V8의 모든 인스턴스에서 메모리를 소비합니다. 빌트인 함수의 개수, 평균 크기, 그리고 크롬 브라우저 탭당 V8 인스턴스 수는 크게 증가해 왔습니다. 이 블로그 게시물에서는 지난 1년 동안 웹사이트당 평균 V8 힙 크기를 19% 줄이는 방법을 설명합니다.

V8 릴리즈 v6.9

· 약 4분
V8 팀

6주마다, 우리는 릴리즈 프로세스의 일환으로 V8의 새로운 브랜치를 생성합니다. 각 버전은 Chrome Beta 마일스톤 직전에 V8의 Git 마스터에서 분기됩니다. 오늘 우리는 최신 브랜치 V8 버전 6.9를 발표하게 되어 기쁩니다. 이 버전은 몇 주 후 Chrome 69 Stable과 함께 출시되기 전까지 베타 상태입니다. V8 v6.9는 개발자들에게 유익한 기능으로 가득합니다. 이 게시물은 출시를 앞두고 주요 기능들을 미리 보여줍니다.

V8 릴리스 v6.8

· 약 3분
V8 팀

6주마다 저희는 릴리스 프로세스의 일환으로 V8의 새로운 브랜치를 만듭니다. 각 버전은 Chrome 베타 마일스톤 직전에 V8 Git 마스터에서 브랜치됩니다. 오늘 저희는 새로운 브랜치인 V8 버전 6.8을 발표하게 되어 기쁩니다. 이 브랜치는 몇 주 후 Chrome 68 Stable과 조정되어 릴리스되기 전까지 베타 상태입니다. V8 v6.8에는 개발자에게 유용한 여러 기능이 추가되었습니다. 이번 포스트에서는 릴리스를 기대하며 몇 가지 주요 사항을 미리 살펴보겠습니다.

V8의 동시 마킹

· 약 10분
Ulan Degenbaev, Michael Lippautz, 그리고 Hannes Payer — 메인 스레드 해방자

이 게시글은 _동시 마킹_이라는 가비지 컬렉션 기술에 대해 설명합니다. 해당 최적화는 자바스크립트 애플리케이션이 실행을 계속하는 동안 가비지 컬렉터가 힙을 스캔하여 살아있는 객체를 찾고 마킹하도록 허용합니다. 우리의 벤치마크는 동시 마킹이 메인 스레드에서 마킹에 소요되는 시간을 60%–70% 감소시킨다는 것을 보여줍니다. 동시 마킹은 Orinoco 프로젝트의 마지막 퍼즐 조각으로, 기존 가비지 컬렉터를 대부분 동시적이고 병렬적인 새로운 가비지 컬렉터로 점진적으로 대체하는 프로젝트입니다. 동시 마킹은 크롬 64 및 Node.js v10에서 기본적으로 활성화되어 있습니다.

V8 릴리스 v6.7

· 약 2분
V8 팀

6주마다 우리는 릴리스 프로세스의 일환으로 새로운 V8 브랜치를 만듭니다. 각 버전은 Chrome Beta 마일스톤 직전에 V8의 Git 마스터에서 브랜치됩니다. 오늘 우리는 V8 버전 6.7이라는 최신 브랜치를 발표하게 되어 기쁩니다. 이 버전은 몇 주 내에 Chrome 67 Stable과 함께 릴리스될 때까지 베타 상태에 있습니다. V8 v6.7은 개발자들이 흥미로워할 다양한 기능들을 포함하고 있습니다. 이번 글에서는 주요 기능들에 대한 미리보기를 제공합니다.

V8에 BigInt 추가

· 약 7분
정밀성을 담당하는 Jakob Kummerow

지난 몇 달 동안, 향후 ECMAScript 버전에 포함될 예정인 이 제안서에 따라 V8에서 BigInt를 지원하는 기능을 구현했습니다. 아래 글에서 우리의 모험 이야기를 들어보세요.