2009-06-07 4 views
6

x86 및 x64 플랫폼에서 실행해야하는 .Net Framework 3.5 SP1/CLR 2.0 응용 프로그램이 있다고 가정합니다. 어떤 이유로 든 별도의 x86 및 x64 설치 프로그램을 만들어야한다고 가정하십시오.어셈블리를 x64로 컴파일 할 때 이점이 있습니까?

어쨌든 x64 관련 설치 프로그램이 있으므로 "AnyCPU"를 타겟팅하는 대신 x64로 응용 프로그램 자체를 다시 컴파일하면 어떤 이점이 있습니까?

대상을 x64로 설정하면 생성 된 어셈블리의 헤더 정보 외에도 아무 것도 변경되지 않습니까?

+0

(제거 된 태그 어셈블리가있는 거의 모든 메시지가 .NET 어셈블리가 아니라 어셈블러에 관한 것이기 때문에)로 컴파일 할 때 할당됩니다. –

답변

4

x64를 지정하면 프로그램의 기본 메모리 설정이 일부 변경되므로 메모리 사용량이 많은 프로그램에서 약간 더 성능이 향상됩니다. 더 큰 스레드 스택은 x64 (link)

2

Ngen 어셈블리가 없으면 "AnyCPU"로두고 아키텍처를 대상으로 지정하는 것이 좋습니다.

1

네이티브 x86 dll을 래핑 할 때보 다 래퍼 어셈블리를 x86 플랫폼 용으로 컴파일해야합니다. 그렇지 않으면 x64 컴퓨터에서 Throw되는 BadImageFormatException이 발생합니다. 그리고 나서, 그 어셈블리를 참조하는 모든 어셈블리는 x86 플랫폼 용으로 컴파일해야하기 때문에 눈덩이처럼 보입니다.

내가 뭔가 잘못하고있는 것일 수도 있지만, 이것이 내가 발견 한 것입니다. 네이티브 dll을 사용하지 않는다면 모든 어셈블리를 "AnyCPU"로 남겨 둘 것입니다.

0

.net 어셈블리에 대해 많이 알지는 못하지만 일반적으로 프로그램이 x64 아키텍처에서만 실행된다는 것을 알고 x64 컴퓨터 코드로 컴파일하면 성능이 향상 될 것입니다. 아무것도 잃지 않습니다 (x64 환경에서만 실행된다는 것을 이미 알고있는 한).