VS 프로젝트에서 사용하지 않는 using 문을 제거하면 이점이 있습니까?


21

VS 프로젝트에서 사용하지 않는 using 문을 제거하면 이점이 있습니까 (예 : Resharper를 사용하여 수행 할 수 있음) VS는 빌드 / 배포시이를 자동으로 처리합니까?


1
당신이 removing unused references(DLLs) 에 대해 묻는 인상 과 모든 대답은 약 removing unused using statements입니다.
Răzvan Flavius ​​Panda

RăzvanPanda @ : 아니, 그것은 되어 문을 사용하여; R #으로 후자를 할 수 있다면 체코 사람이 있어야합니다.
B. Clay Shannon

의미에 맞게 문구를 수정하십시오.
Răzvan Flavius ​​Panda

1
최신 R #으로 사용하지 않는 DLL 참조를 제거 할 수 있지만 동적 DLL 참조에주의해야합니다. 그렇지 않으면 런타임에 문제가 발생할 수 있습니다.
Răzvan Flavius ​​Panda

답변:


23

그것이 의미하는 바라면 성능상의 이점은 없습니다.

어셈블리의 모든 참조는 정규화되어 있습니다. 컴파일러는 사용자가 코드에 제공 한 참조를 사용하여 식별자를 정규화하기 때문에 소스 코드에서 사용되지 않은 참조의 영향은 가독성이 약간 감소하고 (이 참조가 여기에있는 이유) 컴파일 시간이 약간 증가하는 것입니다.

달리 말하면, 생성 된 IL은 사용하지 않는 참조를 제거하든 없든 정확히 동일합니다.


사용하지 않는 사용을 제거 하면 간접적 인 이점 이있을 수 있습니다 . 이렇게하면 솔루션에서 외부 DLL에 대한 하나 이상의 참조를 제거 할 수있어 응용 프로그램의 배포 크기 및 / 또는 시작 시간에 도움이 될 수 있습니다.
weir

1
사용을 제거해도 생성 된 IL은 변경되지 않으므로 어떤 영향을 받는지 알 수 없습니다.
Robert Harvey

True : 사용하지 않는 usings 또는 DLL 참조 ( Reference IncludeMSBuild 파일 요소, /reference:CSC 인수) 를 추가하면 IL이 변경되지 않습니다 . 나는 염두에 두었다 : using웹 애플리케이션 프로젝트에서 사용되지 않은을 제거하십시오 . 이것들은 많은 DLL 참조를 포함시키는 유일한 코드 줄 이었으므로 이제 제거하십시오. 당신이 말했듯이, 참조가 UNC 경로라면 (CSC는 모든 참조 경로를 검사합니다) 더 빨리 빌드합니다. 사소한 승리 2 : CI 속도 (스크립트는 참조 된 모든 DLL을 가져옵니다)가 줄어 듭니다. 예를 들어 소스 제어 서버에서 서버를 구축하여 서버를 앱 서버로 게시하는 데 필요한 파일 수가 줄어 듭니다.
weir

코드가 짧을수록 더 읽기 쉬운 코드입니다. 더 적을수록-이것이 이점이며 그 이유로 할 가치가 있습니다.
niico

24

예-두 가지 주요 이점을 생각할 수 있습니다.

  1. 그 주요 기능 목적을 넘어 네임 스페이스 (또는 적어도있는 (특히 ReSharper에서없는 사람을) 미래의 리더를 말할 수있는 코드 파일의 맨 위에 '사용'문 목록을 (즉, 코드의 상세를 줄이기 위해) 했다 그 코드 파일) 관련 . 이 목록을 적극적으로 정리하면 더 나은 신호 메커니즘으로 작동 할 수 있습니다.
  2. 사용하지 않는 네임 스페이스를 제거하면 입력 할 때 텍스트 편집기에서 자동 완성 후보 수가 줄어 듭니다. 자동 완성 목록에 의존하는 경우 "직접적이고 좁게"유지하는 데 도움이되고 원하는 자동 완성 후보를 조금 더 빨리 찾을 수 있기 때문에 입력 속도를 높일 수도 있습니다.

1
아, 아주 좋은 점, 특히 # 2!
B. Clay Shannon

0

사용하지 않는 코드를 제거하는 것은 추가 수하물이며 달성 된 효율성을 측정하기가 어렵습니다.

  • 사용하지 않는 코드를 제거하고 컴파일 시간을 줄이면 15 ~ 20 분 정도 걸리는 프로젝트를 진행하고 있으며 사용하지 않는 코드가 많이 있습니다. 사용하지 않는 코드를 제거하면 컴파일 시간이 ~ 7 분으로 단축되었습니다. 이는 팀에 많은 개발자가있을 때 어려워서 모든 사람이 빠르게 빌드하고 테스트 할 시간을 절약합니다.

  • 빌드 및 단위 테스트를 자동화 한 경우 이제 필요하지 않은 단위 테스트를 제거했습니다. 다시 이것은 단위 테스트를 실행하는 데 걸리는 시간이 줄어 듭니다. Continuous Build 관리 프로세스의 효율성이 향상되었습니다.

    • 사용하지 않는 코드는 바이너리의 풋 프린트를 크게합니다. 코드 풋 프린트가 작을수록 처음로드 / 시작하는 데 걸리는 시간이 줄어 듭니다. 이익은 매우 빈약하고 주관적 일 수 있지만.

4
질문은 일반적으로 사용되지 않는 코드에 관한 것이 아니라 사용되지 않은 참조에 관한 것입니다
gnat

... 답변 방법 : "질문을 주의 깊게 읽으십시오 . 구체적으로 , 질문이 무엇입니까 ? 대답이 다음을 제공하는지 확인하십시오."
gnat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.