Rust Glancer - 메모리를 100배 적게 쓰는 Rust LSP

8 hours ago 5

Rust Glancer는 분석 결과를 파일 시스템에 보존해 합리적인 규모의 프로젝트에서 100MB 미만의 RAM을 목표로 하며, 편집기를 재시작해도 기존 색인을 즉시 재사용함 rust-analyzer의 메모리 기반 증분 분석과 달리, 저장 시 무효화되는 고정 분석 결과를 사용하고 질의에 필요한 데이터만 파일 시스템에서 불러와 메모리를 절약함 M4 Max에서는 기본·전체 색인이 각각 5초·8초, M1 8GB에서는 6초·9초로 rust-analyzer보다 모든 측정에서 빨랐지만, 아직 누락된 기능과 알려진 버그가 있음 타입 추론, Chalk 기반 트레이트 풀이, 선언적 매크로 확장과 주요 LSP 기능을 지원하지만, 저장 전 새 항목이 색인되지 않는 등 키 입력 단위 정확성과 완성도에서는 rust-analyzer가 앞섬 VS Code 확장으로 시험할 수 있으며 성능·메모리 최적화, 코드 액션과 구문 지원을 개선할 계획이지만, 신뢰할 수 없는 코드 실행이 필요한 빌드 스크립트와 proc macro 호출은 지원하지 않을 방침임 저메모리 Rust LSP의 목표 Rust Glancer는 4개월 동안 개발한 저메모리 중심 Rust LSP 구현체임 합리적인 규모의 프로젝트에서 RAM 사용량 100MB 미만을 목표로 함 한 번 색인한 프로젝트는 편집기를 재시작해도 재색인 없이 분석 결과를 즉시 사용할 수 있음 시연 중 RAM 사용량은 계속 100MB 미만이었음 2020년형 MacBook Pro M1 8GB에서도 테스트했으며, 오래되거나 메모리가 적은 컴퓨터에서도 준수하게 동작함 색인 성능과 현재 지원 범위 MacBook Pro M4 Max 36GB에서 측정한 색인 시간은 다음과 같음 Rust Glancer: 엔진 사용 가능까지 5초, 전체 색인 8초 rust-analyzer: 엔진 사용 가능까지 6초, 전체 색인 13초 MacBook Pro M1 8GB에서는 다음 결과를 기록함 Rust Glancer: 엔진 사용 가능까지 6초, 전체 색인 9초 rust-analyzer: 엔진 사용 가능까지 7초, 전체 색인 14초 개발 4개월 단계라 완전한 LSP는 아니며 누락된 기능, 알려진 버그, 개선할 부분이 많음 전체 색인 파이프라인과 타입 추론, Chalk 기반 트레이트 풀이를 이미 갖추고 있음 일반적인 Rust 구문 대부분을 지원함 정의로 이동, 호버, 인레이 힌트, 자동 완성 등 일반적인 LSP 동작 대부분을 사용할 수 있음 VS ...

Read Entire Article