12P by xguru 4달전 | favorite | 댓글과 토론
  • 2023년 V8 엔진의 인상적인 개선 성과 요약
  • 새로운 중간 단계 컴파일러 도입과 상위 단계 컴파일러, 런타임, 가비지 컬렉터의 개선을 통해 전반적인 속도 향상
  • 자바스크립트와 WebAssembly에 대한 새로운 기능 추가 및 WebAssembly 가비지 컬렉션(WasmGC)으로 웹에 효율적으로 가비지 컬렉션 프로그래밍 언어를 가져옴
  • 안전성 향상을 위해 샌드박싱 인프라 개선 및 V8에 제어 흐름 무결성(CFI) 도입

Maglev: 새로운 중간 단계 최적화 컴파일러

  • 새로운 최적화 컴파일러 Maglev 도입, Sparkplug과 TurboFan 사이에서 작동
  • Maglev는 Sparkplug보다 약 20배 느리게 코드를 생성하지만, TurboFan보다는 10~100배 빠르게 코드를 생성
  • JetStream에서 8.2%, Speedometer에서 6%의 성능 향상 관찰
  • Maglev의 빠른 컴파일 속도와 TurboFan에 대한 의존도 감소로 인한 에너지 절감 효과

Turboshaft: 상위 단계 최적화 컴파일러의 새로운 구조

  • 상위 단계 최적화 컴파일러 TurboFan의 새로운 내부 구조 Turboshaft 도입
  • 새로운 최적화 추가와 더 빠른 컴파일 가능
  • Chrome 120부터 CPU-agnostic 백엔드 단계 모두 Turboshaft 사용, 이전보다 약 두 배 빠른 컴파일

더 빠른 HTML 파서

  • HTML 파싱에 소요되는 시간 감소를 위해 Blink에 더 빠른 HTML 파서 추가
  • Speedometer 점수에서 3.4% 증가
  • WebKit 프로젝트가 이 변경 사항을 즉시 통합

더 빠른 DOM 할당

  • DOM 측면에서의 투자와 최적화
  • Oilpan 할당자에 페이지 풀 추가로 커널과의 왕복 비용 감소
  • 압축 및 비압축 포인터 지원과 Blink에서 고빈도 필드의 압축 방지
  • 자주 할당되는 클래스의 oilpanization으로 할당 작업 3배 가속화 및 DOM 중심 벤치마크 성능 향상

새로운 자바스크립트 기능

  • 새로 표준화된 자바스크립트 기능 배포.
  • resizable ArrayBuffers, ArrayBuffer transfer, String isWellFormedtoWellFormed, RegExp v 플래그, JSON.parse with source, Array grouping, Promise.withResolvers, Array.fromAsync 등 추가
  • Iterator 도우미 기능은 웹 호환성 문제로 인해 일시적으로 철회 후 재배포 예정
  • ES6+ 자바스크립트 코드의 성능 향상을 위한 일부 불필요한 임시 죽은 지역 검사 생략

WebAssembly 업데이트

  • Wasm에 대한 새로운 기능과 성능 향상
  • 멀티 메모리, 꼬리 호출, 완화된 SIMD 지원으로 성능 향상
  • 메모리64 구현 완료 및 제안이 4단계에 도달하면 배포 예정
  • 예외 처리 제안의 최신 업데이트 반영 및 이전 형식 지원
  • JSPI 투자로 웹에서 더 큰 클래스의 애플리케이션 활성화

WebAssembly 가비지 컬렉션

  • WasmGC 배포로 V8의 기존 가비지 컬렉터에 의해 관리되는 객체와 배열 할당 가능
  • Java, Kotlin, Dart 등의 가비지 컬렉션 언어로 작성된 애플리케이션을 Wasm으로 컴파일할 때 자바스크립트로 컴파일하는 것보다 약 두 배 빠른 실행

보안

  • 샌드박싱, 퍼징, CFI가 올해의 주요 보안 주제
  • 샌드박싱 인프라 구축, 퍼징 인프라 투자 및 언어 커버리지 개선
  • CFI 아키텍처 기반 마련 및 다양한 플랫폼에서 구현 가능
  • the_hole 주변 인기 있는 익스플로잇 기술 완화 및 V8CTF 형태의 새로운 익스플로잇 현상금 프로그램 시작

결론

  • 작은 성능 향상 프로젝트들의 결합된 영향으로 상당한 성과
  • 2023년 V8의 성능 향상을 보여주는 벤치마크 점수는 JetStream에서 14%, Speedometer에서 34% 성장
  • V8은 이제 더 빠르고 안전하며, 빠르고 격렬한 웹으로의 여정은 이제 시작임
  • V8 팀은 모두에게 빠르고 안전하며 멋진 웹 탐색 경험을 기원