피드로 돌아가기
This Month in Ladybird - April 2026
Hacker NewsHacker News
Infrastructure

메인 스레드 병목 제거와 JS 엔진 최적화로 렌더링 및 실행 속도 혁신

This Month in Ladybird - April 2026

2026년 5월 2일15advanced

Context

단일 스레드 중심의 HTML 파싱 및 JS 컴파일 구조로 인한 메인 스레드 점유율 상승과 렌더링 지연 발생. 특히 iframes의 동기적 래스터화와 비효율적인 레지스터 할당 로직이 전체 시스템 성능의 병목 지점으로 작용.

Technical Solution

  • Incremental HTML Parsing 도입을 통한 바디 전체 대기 시간 제거 및 스트리밍 데이터 처리 구조 설계
  • Speculative HTML Parser 구현으로 동기 스크립트 블로킹 시 리소스를 선제적으로 Fetch 하여 로딩 속도 개선
  • JS Bytecode 생성을 Background Thread Pool로 이관하여 VM 및 GC 힙 접근을 제외한 연산 분리
  • Per-Navigable Rasterization 설계를 통한 iframe 독립 스레드 래스터화 및 ExternalContentSource 기반의 부모-자식 렌더링 의존성 제거
  • JS 엔진 내 LIFO Stack 기반 O(1) Register Allocator 도입으로 기존 free pool 스캔 오버헤드 제거
  • AsmInt 어셈블리 인터프리터 내 Call/Return/End 명령어를 직접 처리하는 hand-tuned ARM64 최적화 적용

- 블로킹 I/O 발생 지점에 Speculative Fetching 도입 가능 여부 검토 - 메인 루프 내 O(N) 탐색 로직을 O(1) 자료구조(Stack, Map 등)로 대체하여 CPU 사이클 확보 - 대용량 데이터 전달 시 복사 비용을 줄이기 위한 Zero-copy 메커니즘 및 Shared Memory 적용 고려 - 복합 컴포넌트 렌더링 시 계층 구조의 동기적 갱신 대신 독립적 래스터화 후 합성하는 구조 검토

원문 읽기