피드로 돌아가기
Dev.toFrontend
원문 읽기
Manifest V3 기반 Tab Suspension으로 Chrome RAM 사용량 95% 절감
Why Chrome Eats Your RAM & How We Built a Manifest V3 Extension to Slash Memory Usage by 95%
AI 요약
Context
Chrome의 Multi-process Architecture는 보안과 안정성을 제공하나, 개별 탭 및 확장 프로그램마다 독립적인 V8 Engine 인스턴스를 생성하여 막대한 메모리 Overhead를 유발함. 기존 Manifest V2 기반 확장 프로그램은 Background Page가 상시 메모리에 상주하는 구조로 인해 지속적인 리소스 낭비가 발생하는 한계점이 존재함.
Technical Solution
- Persistent Background Page를 제거하고 Event-driven Service Worker를 도입하여 필요 시에만 프로세스를 활성화하는 MV3 아키텍처 채택
- 비활성 탭의 Renderer Process를 강제로 종료하고 상태 값(URL, Scroll Position 등)만 저장하는 Tab Suspension 로직 구현
- 프로세스 종료 후 Lightweight Placeholder Page로 대체하여 탭당 메모리 점유율을 1GB 이상에서 15MB 미만으로 축소
- Chrome Internal Process 쿼리를 통한 실시간 메모리 모니터링 및 임계치 기반의 Auto-suspension 트리거 설계
- 세션 그룹화 및 Workspace 관리 기능을 통해 불필요한 탭의 완전 종료 및 RAM 100% 회수 구조 구축
실천 포인트
1. 백그라운드 작업 설계 시 상주 프로세스 대신 Event-driven Worker 도입 검토
2. 사용자 비활성 상태의 고비용 리소스에 대해 상태 저장 후 프로세스를 종료하는 Suspension 전략 적용
3. 외부 API나 시스템 쿼리를 통한 실시간 리소스 모니터링 기반의 동적 자원 할당 로직 구현