JSWhiz: JavaScript 메모리 누수 정적 분석 도구

Source

  • Evernote/Papers/JSWhiz - Static Analysis for JavaScript Memory Leaks.md

Summary

JSWhiz는 Closure JavaScript 컴파일러의 확장 도구로, JavaScript의 가비지 컬렉션에도 불구하고 웹 프레임워크 사용 시 발생하는 메모리 누수를 정적 분석을 통해 탐지합니다. Gmail 등 Google의 주요 웹 애플리케이션에서 5가지 공통 문제 패턴을 식별하여 89건의 메모리 누수를 발견했으며, 이를 통해 Gmail의 메모리 사용량(99 백분위 기준 75%, 중앙값 기준 50%)을 대폭 줄이는 데 기여했습니다.

Key Points

  • JavaScript의 가비지 컬렉션 메커니즘에도 불구하고, 크로스 브라우저 호환성 프레임워크 사용 시 메모리 누수 발생 가능
  • JSWhiz는 Closure 컴파일러 확장 도구로, 정적 분석을 통해 5가지 일반적인 메모리 누수 패턴을 탐지
  • Gmail, Docs, Spreadsheets 등 Google 내부 서비스에서 총 89건의 메모리 누수 발견
  • Gmail 메모리 사용량 최적화 프로젝트에 기여하여 99 백분위 기준 75%, 중앙값 기준 약 50%의 메모리 부하 감소 효과 입증