performance - operating - Suministro de versiones específicas de 64 bits de su software
64 bit operating system download (6)
Antes de trabajar demasiado para determinar si existe un caso técnico para la compilación de 64 bits, debe verificar que exista un caso comercial . ¿Sus clientes están pidiendo una compilación de este tipo? ¿Te dará una ventaja definitiva en competencia con otros proveedores? ¿Cuál es el costo de crear una compilación de este tipo y en qué incurrirán los costos comerciales al agregar otro ítem a sus procesos de contabilidad, ventas y marketing?
Si bien reconozco que debe comprender el potencial de las mejoras en el rendimiento antes de poder manejar las ventajas competitivas, le sugiero encarecidamente que aborde el problema desde una perspectiva general. Si usted es un negocio pequeño o solo, se debe a usted mismo hacer la debida diligencia apropiada. Si trabajas para una organización más grande, tus superiores apreciarán mucho el esfuerzo que pones al pensar sobre estas cuestiones (o considerarán el problema como un exceso geek si no estás preparado para responderlas).
Con todo lo dicho, mi respuesta técnica general sería que la gran mayoría de las aplicaciones orientadas al usuario no verán ninguna ventaja de una versión de 64 bits. Piénselo: ¿cuántos de los problemas de rendimiento en su aplicación actual provienen de estar ligados al procesador (o acceso a la memoria RAM)? ¿Hay algún problema de rendimiento en tu aplicación actual? (De lo contrario, probablemente no deberías hacer esta pregunta).
Si se trata de una aplicación Cliente / Servidor, mi apuesta es que la latencia de la red contribuye mucho más al rendimiento en el lado del cliente (especialmente si sus consultas generalmente devuelven una gran cantidad de datos). Suponiendo que se trata de una aplicación de base de datos, ¿cuánto de su perfil de rendimiento se debe a los tiempos de latencia del disco en el servidor? Si piensa en toda la constelación de factores que afectan el rendimiento, obtendrá una mejor idea de si su aplicación específica se beneficiaría de una actualización de 64 bits y, si es así, si necesita actualizar ambos lados o si todos sus beneficio se derivaría solo de la actualización del lado del servidor.
¿Esperaría ver algún aumento en el rendimiento al compilar mi C ++ Client y Server nativo en un código de 64 bits?
¿Qué tipo de aplicaciones se benefician al tener una compilación específica de 64 bits?
Me imagino que todo lo que hace un uso extenso de largo se beneficiaría, o cualquier aplicación que necesita una gran cantidad de memoria (es decir, más de 2 Gb), pero no estoy seguro de qué más.
De acuerdo con esta página web, usted se beneficiará más de los registros de propósito general extra con CPU de 64 bit si usa muchos y / o bucles profundos.
No hay mucho más, realmente. Aunque escribir una aplicación de 64 bits puede tener algunas ventajas para usted, como programador, en algunos casos. Un ejemplo simplista es una aplicación cuyo enfoque principal es interactuar con el registro. Como un proceso de 32 bits, su aplicación no tendría acceso a grandes franjas del registro en sistemas de 64 bits.
Puede esperar ganancias gracias a los registros adicionales y la nueva convención de parámetros de aprobación (que están realmente vinculados a los registros adicionales).
Ventajas arquitectónicas de Intel x64 vs. x86
- espacio de direcciones mas grande
- un conjunto de registros más rico
- puede enlazar con bibliotecas externas o cargar complementos de 64 bits
Desventaja arquitectónica del modo x64
- todos los punteros (y, por lo tanto, también muchas instrucciones) ocupan el doble de la memoria, reduciendo a la mitad el tamaño efectivo de la memoria caché del procesador en el peor de los casos
- no puede enlazar con bibliotecas externas o cargar complementos de 32 bits
En las aplicaciones que he escrito, a veces he visto grandes aceleraciones (30%) y, a veces, he visto grandes ralentizaciones (> 2x) al cambiar a 64 bits. Las grandes aceleraciones se han producido en las aplicaciones de procesamiento de video / procesamiento de números en las que estaba registrado.
La única gran desaceleración que he visto en mi propio código al convertir a 64 bits proviene de una aplicación de persecución de punteros masiva donde un compilador realizó algunas "optimizaciones" realmente malas. Otro código generado por el compilador donde la diferencia de rendimiento era insignificante.
Beneficio de portar ahora
Escribir un código compatible con 64 bits no es tan difícil el 99% del tiempo, una vez que sabes lo que debes vigilar. En su mayoría, se reduce a usar size_t y ptrdiff_t en lugar de int cuando se refiere a direcciones de memoria (supongo que aquí se usa el código C / C ++). Puede ser complicado convertir una gran cantidad de código que no estaba escrito para ser consciente de 64 bits.
Incluso si no tiene sentido hacer una compilación de 64 bits para su aplicación (probablemente no sea así), vale la pena el tiempo para aprender lo que se necesitaría para hacer la compilación de modo que al menos todos los códigos nuevos y futuras refactorizaciones será compatible con 64 bits.
Continuando con el comentario de @ mdbritt , construir para 64 bits tiene mucho más sentido [actualmente] si se trata de una creación de servidor, o si está distribuyendo a usuarios de Linux.
Parece que hay muchas más estaciones de trabajo de Windows de 32 bits, y es posible que no haya una gran base de clientes para una nueva compilación.
Por otro lado, muchas instalaciones de servidores ahora son de 64 bits: RHEL, Windows, SLES, etc. NO construir para ellos sería cortar un montón de uso potencial, en mi opinión.
Es probable que los usuarios de Linux de escritorio también ejecuten las versiones de 64 bits de su distribución favorita (probablemente Ubuntu, SuSE o Fedora).
El principal beneficio obvio de construir para 64 bits, sin embargo, es que se supera la barrera de 3 GB para el uso de la memoria.