c# - samsung - ¿Cómo puedo compilar mi aplicación de 64 bits para que sea más rápida o mejor?
como hacer que mi internet sea mas rapido android (5)
Uso C #, .NET, VS.NET 2008.
Además de poder abordar más memoria, ¿cuáles son las ventajas de compilar mi aplicación a 64 bits?
¿Va a ser más rápido o más pequeño? ¿Por qué?
¿Lo hace más compatible con un sistema x64 (en comparación con una aplicación de 32 bits)?
Como cuestión de hecho, las aplicaciones de 64 bits que no requieren un gran espacio de memoria tienden a funcionar más lento. Una de las razones detrás de esto es que tiene que mover datos de movimiento. Si no puede utilizar> 2 GB de espacio de memoria (para el almacenamiento en caché, por ejemplo), no lo recomendaría.
Aquí hay un enlace interesante que acabo de encontrar http://www.osnews.com/story/5768 con mucha información.
En teoría, un programa compilado para x64 se ejecutará más rápido que un programa compilado para x86. La razón de esto es porque hay más registros de propósito general en la arquitectura x64. 32-bit x86 tiene solo 4 registros de propósito general. AMD agregó otros 8 registros de propósito general en sus extensiones x64. Esto permite menos cargas de memoria y un rendimiento (ligeramente) más rápido.
En realidad, esto no hace una gran diferencia en el rendimiento, pero debería ser leve.
El tamaño del binario y la huella de memoria aumentarán en cierta medida al utilizar instrucciones de 64 bits, pero como x64 sigue siendo una arquitectura de CISC, el tamaño del binario no se duplicará como lo haría en una arquitectura RISC. La mayoría de las instrucciones aún son más cortas que 64 bits de longitud.
Lo dudo (dada la plataforma C # / .NET), a menos que esté usando el Código nativo. Recuerde, el código administrado .NET se compila en IL, y el conmutador de la plataforma se establece de manera predeterminada en anycpu, por lo que debe obtener un mejor rendimiento en el sistema operativo de 64 bits con su binario existente:
http://blogs.msdn.com/gauravseth/archive/2006/03/07/545104.aspx
Este artículo contiene una gran cantidad de información útil, incluida la herramienta CorFlags, que le permitirá inspeccionar un encabezado PE.
En general, para los binarios de código nativo, sí.
Realmente no soy un experto en arquitecturas de CPU, así que tome mis comentarios a la ligera. Wikipedia tiene un artículo que describe la arquitectura x86-64 ( texto del enlace ).
El x86-64 tiene más registros, esto solo debería ayudar a acelerar el programa. Además, esta nueva arquitectura ofrece nuevos conjuntos de instrucciones que podrían mejorar la velocidad si el compilador se aprovecha de ello.
Otro factor a tener en cuenta es la cantidad de conjuntos de instrucciones disponibles. Cuando un programa se compila en x86, generalmente su objetivo es ejecutar en todos los CPUS existentes de 32 bits (Pentium 1, 2, 3, 4, core *, etc.). Cada nueva generación de CPU agrega nuevos conjuntos de instrucciones, estas instrucciones no pueden ser utilizadas por un programa que quiera ser totalmente portátil en formato binario entre todos los CPUS x86. Como x86-64 bit es una nueva arquitectura, la recompilación de un programa para esta máquina le da al compilador un conjunto más amplio de instrucciones para usar sin preocuparse demasiado por la compatibilidad binaria entre los diferentes CPUS de 64 bits.
Para aplicaciones nativas , obtienes beneficios como un mayor espacio de direcciones y otras cosas. Sin embargo, las aplicaciones .NET se ejecutan en el CLR, que abstrae cualquier diferencia de arquitectura subyacente.
Suponiendo que solo está tratando con el código administrado, no hay ningún beneficio para apuntar a una plataforma específica; es mejor que simplemente compile con el conjunto de banderas "anycpu" (que está activado por defecto). Esto generará ensambles independientes de la plataforma que funcionarán igual de bien en cualquiera de las arquitecturas en las que se ejecuta CLR.
Específicamente, la orientación (por ejemplo) x64 no le dará ninguna mejora en el rendimiento, y evitará que sus ensamblados funcionen en una plataforma de 32 bits.
Este artículo tiene un poco más de información sobre el tema.
Actualización: Scott Hanselman acaba de publicar una buena visión general de este tema también.