다음을 통해 공유


추가 기능 성능

업데이트: 2007년 11월

파이프라인 계약에 도메인 중립 로드를 사용하여 추가 기능 성능을 향상시킬 수 있으며 파이프라인 세그먼트에 대해 네이티브 이미지를 생성하여 활성화 성능을 향상시킬 수 있습니다.

도메인 중립 로드를 사용하여 크로스 도메인 호출 성능 향상

추가 기능이 별도의 응용 프로그램 도메인에 로드되면 호스트와 추가 기능 간의 호출이 파이프라인을 통해 응용 프로그램 도메인 경계를 넘어 마샬링됩니다. 계약을 포함하는 어셈블리가 도메인 중립적으로 로드되면 이러한 크로스 도메인 호출의 성능이 크게 향상됩니다.

어셈블리는 강력한 이름을 사용하고 전역 어셈블리 캐시에 설치되어 있어야 합니다. 또한 LoaderOptimization.MultiDomainHost 플래그나 LoaderOptimization.MultiDomain 플래그가 지정된 LoaderOptimizationAttribute가 있어야 합니다.

JIT 컴파일러 사용을 해제하여 활성화 성능 향상

JIT(Just-In-Time) 컴파일러를 사용하면 추가 기능 활성화의 성능 오버헤드 문제가 크게 증가하는데, 특히 추가 기능이 별도의 응용 프로그램 도메인에서 활성화되는 경우 더욱 그렇습니다. JIT 컴파일러를 사용하지 않으려면 다음 지침을 따르십시오.

  • 파이프라인 어셈블리에 강력한 이름을 지정하여 전역 어셈블리 캐시에 설치합니다.

  • 네이티브 이미지 생성기(Ngen.exe)를 사용하여 파이프라인 어셈블리에 대한 네이티브 이미지를 만듭니다.

  • 이전 단원에서 설명한 대로 계약을 포함하는 어셈블리가 도메인 중립적으로 로드되는지 확인합니다.

    참고:

    이 내용은 매우 중요합니다. 계약이 도메인 중립적으로 로드되지 않으면 모든 추가 기능측 구성 요소에서 네이티브 이미지를 사용할 수 없습니다.

  • .NET Framework 어셈블리의 네이티브 이미지를 여러 응용 프로그램 도메인에서 공유할 수 있도록 MultiDomainHost 플래그 또는 MultiDomain 플래그를 사용하여 LoaderOptimizationAttribute를 호스트 어셈블리에 적용합니다.

    참고:

    호스팅 프로세스(vshost.exe)에는 어셈블리 공유를 위한 설정이 없으므로 디버거에서 실행 중인 경우에는 이러한 성능 향상을 인식할 수 없습니다. 호스팅 프로세스를 비활성화할 수도 있지만 이 방법은 사용하지 않는 것이 좋습니다. 디버거에서 실행 중인 경우에는 성능을 측정할 수 없습니다.

참고 항목

개념

응용 프로그램 도메인과 어셈블리

참조

LoaderOptimizationAttribute

LoaderOptimization

네이티브 이미지 생성기(Ngen.exe)