TypeScript 7이 Go to Implementation의 메모리 사용을 개선했습니다
게시일: 2026년 7월 30일
Microsoft는 TypeScript의 네이티브 언어 서비스에서 Go to Implementation의 메모리 확장 문제를 수정한 변경 사항을 병합했습니다.
변경 사항
언어 서비스는 구현을 찾기 위해 너비 우선 작업 목록을 사용합니다. 구현이 많은 인터페이스 멤버의 경우 프로그램 전체를 반복 검색하면 동일한 참조가 다시 반환될 수 있었습니다. 따라서 유지된 참조, 대기 중인 작업, 결과 그룹이 이차적으로 증가하여 규모가 크고 타입이 깊게 중첩된 프로젝트에서 메모리를 소진할 수 있었습니다.
이 수정은 참조 노드를 작업 대기열에 추가하기 전에 중복을 제거하고 중복 심볼 정의를 유지하지 않도록 합니다. 회귀 테스트는 구현 수를 두 배로 늘렸을 때 이차 증가가 아니라 거의 선형으로 증가하는지 확인합니다.
중요한 이유
이제 Go to Implementation은 같은 내부 참조를 반복해서 유지하지 않고 이 패턴을 처리할 수 있습니다. 최종 편집기 응답은 이미 중복 제거가 되어 있었으므로, 이번 변경은 해당 응답을 생성하는 데 필요한 내부 메모리와 작업을 대상으로 합니다.
제공 시점
이 변경 사항은 TypeScript 7.0 출시 이후 네이티브 TypeScript 코드베이스에 병합되었습니다. 소스에는 이 수정이 포함된 안정적인 npm 버전이 명시되어 있지 않으므로, 사용자는 이를 사용하기 전에 설치된 버전의 릴리스 노트를 확인해야 합니다.
출처
공식 변경 사항을 확인하세요: Fix O(K^2) OOM issue in go-to-implementation.