영상을 불러오지 못했습니다

Rider 대용량 파일 코드 분석 제한 조정하기

650 단어
3 분
Rider 대용량 파일 코드 분석 제한 조정하기

Rider에서 큰 소스 파일을 열면 syntax highlight만 일부 동작한다. code inspection, completion 또는 error analysis는 비활성화되기도 한다.

문제 현상#

editor 상단에는 파일이 너무 커서 code insight를 제공할 수 없다는 알림이 나타난다. 작은 파일에서는 보이는 오류가 큰 파일에서 표시되지 않기도 한다.

적용 범위#

Rider의 IntelliJ platform editor limit 또는 ReSharper backend analysis limit에 걸린 파일에 해당한다. 두 제한은 서로 다른 설정이며 제품 버전별 기본값도 다르다.

원인#

IDE는 parsing, index와 inspection 비용이 큰 대용량 파일 분석을 제한해 성능을 보호한다. 과거 기록에서는 이를 하나의 “기본 300KB”로 설명하기도 했다. 현재 JetBrains 안내는 platform의 idea.max.intellisense.filesize 기본값이 약 2.5MB이고 C#의 ReSharper analysis에는 별도의 300,000-byte threshold가 있을 수 있다고 구분한다.

재현 및 진단#

  1. 알림 문구를 보고 file size limit인지 inspection severity 문제인지 구분한다.
  2. 상태 표시줄에서 Highlighting level이 None, Syntax, All Problems 중 무엇인지 살펴본다.
  3. 현재 제한 설정은 Help | Diagnostic Tools | Special Files and Folders 또는 custom properties에서 확인한다.
  4. 파일 byte 수와 generated/minified file 여부도 함께 점검해 둔다.

해결 방법#

한 파일만 일시적으로 분석할 때는 editor 오른쪽 위의 highlighting widget에서 All Problems를 선택한다. 전역 제한은 JetBrains가 안내하는 custom properties에서 바꾸되 현재 제품 버전에 맞는 key와 byte 단위를 사용한다.

idea.max.intellisense.filesize=5000

이 값은 예시일 뿐이다. ReSharper backend 제한에 걸렸다면 공식 지원 문서가 안내하는 별도 property를 사용해야 한다. 장기적으로는 generated file을 분석 대상에서 제외하거나 거대한 hand-written source를 책임 단위로 분리한다.

검증 방법#

  • IDE를 재시작한 뒤 문제 파일에서 completion과 inspection이 복구되는지 확인한다.
  • CPU, memory와 indexing 시간도 함께 살펴본다.
  • 작은 파일의 분석 성능이 악화되지 않았는지 점검해 둔다.
  • command-line build 결과와 Rider 표시도 서로 비교한다.

주의점#

제한을 크게 올리면 editor가 멈추거나 전체 solution 분석이 느려지기도 한다. IDE 분석은 compiler를 대체하지 않는다. 큰 파일에서 highlighting을 켰더라도 CI build와 static analysis를 유지한다.

참고 자료#

글 공유하기

이 글이 도움이 되셨다면 다른 사람과 공유해 주세요!

Rider 대용량 파일 코드 분석 제한 조정하기
https://hon454.github.io/posts/rider-large-file-code-analysis-limit/
작성자
Jihoon Jeon
게시일
2023-04-10
라이선스
CC BY-NC-SA 4.0
관련 게시글스마트
1
JetBrains 발표 세션 퀴즈를 맞히고 Rider 1년권을 얻었다!
RiderJetBrains의 Unreal Engine용 Rider 웨비나를 보다가 예상 밖의 PlayStation 퀴즈를 맞히고 Rider 1년 이용권을 받은 경험을 기록합니다.
2
Night of the Dead 멀티플레이를 지금 다시 설계한다면
Unreal EngineNight of the Dead의 멀티플레이 최적화를 새 프로젝트에서 처음부터 설계한다면 바꿀 부분을 좀비의 Mass 전환, Push Model과 Fast Array와 연결별 서브오브젝트 필터를 쓰는 복제, 애플리케이션 계층의 전송 흐름 제어로 나눠 기존 코드와 비교한다.
3
Rider 2022.3 New UI에서 Solution Configuration 선택기가 보이지 않을 때
RiderRider 2022.3 New UI에서 사라진 Solution Configuration 선택기를 ActiveConfiguration action으로 복원하는 방법과 Unreal 빌드 구성의 의미를 정리합니다.
4
오픈월드의 오브젝트를 액터 대신 데이터로 두기
Unreal EngineNight of the Dead의 Dedicated Server에서 자연물, 스포너의 좀비, 보관함 내용물을 필요한 순간에만 액터나 복제 데이터로 만들고 평소에는 인스턴스와 구조체로 유지한 방법을 정리한다.
5
Night of the Dead 멀티플레이 최적화 돌아보기
Unreal EngineNight of the Dead의 Dedicated Server 멀티플레이에 적용한 네트워크와 실행 비용 최적화를 복제 대상, 전송 데이터, 전송 경로, 다수 개체 처리로 나눠 정리하고 각 주제의 상세 글로 연결한다.
무작위 게시글무작위

댓글

Profile Image of the Author
Jihoon Jeon
안녕하세요! 서브컬처와 자전거를 사랑하는 개발자 전지훈입니다.
공지사항
제 블로그에 오신 것을 환영합니다! 예시 공지입니다.
카테고리
태그
최신 일상
사이트 통계
게시글
73
카테고리
10
태그
143
총 단어 수
133,527
운영 일수
0일
최근 활동
0일 전
사이트 정보
빌드 플랫폼
GitHub Actions
블로그 버전
Firefly v6.16.9
라이선스
CC BY-NC-SA 4.0
목차