2009-07-02 6 views
7

64 비트 OS가 설치된 컴퓨터를 최대한 활용하려면 .NET에서 응용 프로그램을 64 비트로 작성해야합니까, 아니면 32 비트 응용 프로그램과 마찬가지로 활용할 수 있습니까? 비트 빌드. 기본적으로 메모리 부족 문제가 발생했으며 문제를 해결할 수있는 64 비트 상자에서 콘솔 앱을 실행하는 것이 좋습니다. 문제는 64 개의 상자를 돌려서 현재의 응용 프로그램을 던지거나 64 비트 방식으로 응용 프로그램을 다시 빌드해야하는지입니다..net 콘솔 응용 프로그램 32 대 64 비트

답변

12

앱이 "모든 CPU"플랫폼 용으로 빌드 된 경우 두 플랫폼 중 하나에서 적절하게 실행됩니다.

32/64 비트 특정 항목을 사용하지 않도록하십시오. 그렇지 않으면 문제가 발생합니다.

MSDN docs here. 단점에 대한 논의를 들면

은이 모든 플랫폼 (기본값)을 위해 만들어진 있다면, 그것은 64 비트 운영 체제에서 64 비트에서 실행됩니다 here

+7

.Net 4.5의 경우 엄격하게 적용되는 것은 아니며 프로젝트 설정에서 32 비트를 선택 해제해야합니다. http : // blogs .microsoft.co.il/sasha/2012/04/04/what-anycpu-really-means-of-net-45 및 visual-studio-11 / – gmn

5

를 참조하십시오.

그렇다고해도 여전히 잠재적 인 문제가 있습니다. p/invoke, C++/CLI 또는 COM을 통해 네이티브 코드와 인터페이스하는 경우 해당 코드를 64 비트로 이식해야합니다. 응용 프로그램이 100 % 관리되는 경우 작동합니다.

1

"모든 CPU"는 친구입니다. 여담으로

:

우리는 32 비트 윈도우의 2GB의 메모리 공간을 초과 특히 큰 Trie 구조를 가지고 있었다. 구조의 대부분이 객체 참조로 구성 되었기 때문에 64 비트로 이동할 때 응용 프로그램의 메모리 요구량이 거의 두 배로 증가하여 약 4GB가 필요했습니다. 이는 참조를 저장할 메모리가 32 비트가 아닌 64 비트이기 때문에입니다.

관련 문제