2009-07-02 13 views
7

¿Necesita una aplicación en .NET incorporarse en 64 bits para aprovechar al máximo una máquina con un sistema operativo de 64 bits o aprovecharla solo como un 32 construcción de bits Básicamente, tenemos un problema con una excepción de falta de memoria y se sugirió ejecutar la aplicación de la consola en un cuadro de 64 bits que "puede" resolver el problema. La pregunta es ¿podemos hacer girar un cuadro de 64 y arrojar la aplicación actual en él o necesito reconstruir la aplicación en una forma de 64 bits..net console app 32 vs 64 bit

Respuesta

12

Si su aplicación está configurada para compilar para la plataforma "Cualquier CPU", se ejecutará correctamente en cualquiera de ellos.

Solo asegúrate de que no utilice ningún material específico de 32/64 bits, o tendrás problemas.

MSDN docs here.

Por alguna discusión sobre inconvenientes, ver here

+7

Esto no es estrictamente cierto a partir de .Net 4.5, también debe desmarcar prefiera 32 bits en la configuración del proyecto, consulte: http: // blogs .microsoft.co.il/sasha/2012/04/04/what-anycpu-really-means-as-of-net-45-and-visual-studio-11 / – gmn

5

Si está construido para cualquier plataforma (el valor predeterminado), se ejecutará en 64 bits en sistemas operativos de 64 bits.

Dicho esto, todavía hay problemas potenciales a tener en cuenta. Si interactúa con el código nativo (a través de p/invoke, C++/CLI, o COM), necesitará portar ese código a 64 bit. Si la aplicación está 100% administrada, simplemente funciona.

1

"Cualquier CPU" es tu amigo.

Como acotación al margen:

Tuvimos una especialmente grande Trie estructura que supera el espacio de memoria de 2 GB de Windows de 32 bits. Debido a que la mayor parte de la estructura está compuesta por referencias a objetos, descubrimos que los requisitos de memoria de la aplicación casi se duplicaron al pasar a 64 bits, lo que requirió alrededor de 4 gb. Esto se debe a que la memoria para almacenar una referencia tiene 64 bits de ancho en lugar de 32.

Cuestiones relacionadas