핵심 요약
- 메모리 사용량을 100MB 미만으로 억제하는 것을 목표로 한 대체 Rust LSP 'rust-glancer'가 공개되었습니다.
- 인메모리 점진적 계산 대신 분석 결과를 파일 시스템에 저장하는 방식을 택해 에디터 재시작 시에도 재인덱싱 없이 즉시 사용 가능합니다.
- 저장 전 새 항목 미반영 등의 한계는 있으나, 8GB M1 맥북 등 저사양 환경 및 AI 에이전트 편집 워크플로우에 최적화되었습니다.
요약 기존 Rust 언어 서버인 rust-analyzer는 뛰어난 완성도를 자랑하지만, 메모리 점유율이 매우 높아 구형 사양의 PC나 램 용량이 적은 기기에서 부담이 컸습니다. 이러한 문제를 해결하기 위해 메모리 사용량을 100MB 미만으로 줄이는 것을 목표로 한 대체 LSP 프로젝트 'rust-glancer'가 공개되었습니다.
개발자는 약 4개월간 프로젝트를 진행했으며, 기존 rust-analyzer가 메모리를 과도하게 사용하는 주된 이유로 증분 쿼리 기반 인메모리 데이터베이스(salsa)와 구문 트리 표현 방식(rowan)에 따른 메모리 단편화를 꼽았습니다. 반면 rust-glancer는 매 타이핑마다 인메모리에서 모든 것을 점진적으로 재계산하는 방식을 과감히 포기했습니다. 대신 분석 결과를 파일 시스템에 오프로드해 두고 쿼리가 발생할 때만 메모리로 불러오는 '고정(frozen) 분석' 설계를 채택했습니다. 이 덕분에 에디터를 재시작해도 다시 전체 인덱싱을 거칠 필요가 없이 즉시 이전 결과를 재사용할 수 있습니다.
성능 테스트 결과에서도 M4 Max뿐 아니라 8GB 램이 탑재된 2020년형 맥북 프로 M1 환경에서 전체 인덱싱 9초(rust-analyzer는 14초)를 기록했고, 작업 내내 램 사용량을 100MB 미만으로 유지했습니다. 다만 저장(save)하기 전까지는 새로운 구조체나 import가 전체 인덱스에 반영되지 않고, 타이핑 중에는 현재 본문에 대한 얕은(shallow) 분석만 수행한다는 트레이드오프가 존재합니다. 또한 AI 코딩 에이전트처럼 에디터 외부에서 대규모 코드 변경이 일어날 때 인덱싱 우선순위를 낮추어 꼬임을 방지하도록 커스텀 파일 감시 기능을 최적화했습니다. 개발자는 rust-analyzer를 완전히 대체하려는 것은 아니며, 저사양 환경이나 메모리 제약이 있는 개발자에게 유용한 대안이 될 것이라고 설명했습니다.
Sponsored · 광고