`네임 스페이스 사용;`더 많은 메모리를 소비합니까?
-
05-09-2019 - |
문제
하다 Using Namespace;
더 많은 메모리를 소비합니까?
저는 현재 모바일 애플리케이션을 연구하고 있으며 클래스를 만들 때 비주얼 스튜디오가 제시하는 진술을 사용하는 불필요한 응용 프로그램에 추가 메모리를 실행해야합니다.
해결책
간단히 말하면 : 아니오.
이러한 진술은 모든 형태의 IL로 번역되지 않습니다. 그들은 (못생긴!) 완전히 자격을 갖춘 유형 이름을 사용하지 않기 위해 바로 가기입니다. 그러나 vs2008 및/또는 r#을 사용하는 경우 사용하지 않은 것을 자동으로 제거 할 수 있습니다.
다른 팁
네임 스페이스는 개발 중에 시간을 절약 할 수있는 C#의 컴파일 타임 유일한 기능입니다. 그만큼 using
지시문은 컴파일러에서 사용하여 코드에서 속기 유형 이름을 찾아냅니다.
기본적으로 컴파일러가 코드에서 유형 이름을 만날 때마다 각각을 차지하는 것을 알지 못합니다. using
지침 및 유형의 이름으로이를 준비하고 완전한 자격을 갖춘 이름이 해결되는지 확인합니다.
응용 프로그램이 정리되면 네임 스페이스와 using
IL이 필요하지 않기 때문에 지침이 사라졌습니다.
"메모리"로 "당신은"내가 진술을 사용하는 사람들을 처음에 맨 위에 놓는 이유를 기억해야한다 "라는 것을 기억해야한다.
그러나, 당신이 의미하는 의미는 아닙니다. .NET 어셈블리는 일반적으로 주문형으로로드되므로 추가 명세서를 통해 성과 페널티가 발생하지 않습니다. 그러나 유지 관리를 위해서는 제거하고 싶을 것입니다.
이 맥락에서 "사용"키워드에 대한 Microsoft 정보는 다음과 같습니다. http://msdn.microsoft.com/en-us/library/sf0df423.aspx. 기본적으로 어셈블리에서 완전히 자격을 갖춘 이름을 사용하는 대안을 제공하지만 실제로 특정 키워드와 함께 메모리에 어셈블리를 가져 오거나 포함시키지 않습니다.
아니 그렇지 않아. 단순히 유형 이름 만 사용할 수있는 속기입니다.
StringBuilder
네임 스페이스 자격 유형 이름과 반대로 :
System.Text.StringBuilder
사용 명령문이 선언 된 파일에서.
아니요, 컴파일러가 약간 느리게 작동하게합니다. :)
그렇지 않습니다. 전체 이름으로 사용하는 객체를 정의 할 필요가 없도록 사용됩니다. System.io.file 대신 System.IO를 사용하는 경우 파일을 수행 할 수 있습니다.
실제로 객체를 만들 때까지 메모리에로드되지 않습니다. C ++와 달리 .NET 프레임 워크가 대상 머신에 설치되고 GAC에로드되고 Custom .DLL이 응용 프로그램 폴더의 빈 폴더에 있기 때문에 전체 라이브러리가 가져 오지 않습니다.