¿Por qué Windows 7 x64 funciona más rápido que una edición x86 en mi PC a pesar de que uso principalmente cosas x86? ¿Qué me pasa y qué me estoy perdiendo?
La mayoría de las cosas que uso es x86 (por ejemplo, DAW, juegos, reproductores multimedia). Sin embargo, una cantidad considerable de ellos son x64 (aunque sus contrapartes x86 funcionan bien).
Intenté usar las mismas cosas en el mismo sistema, pero siempre terminé encontrando que Windows 7 x64 funcionaba un poco más rápido que x86. Soy muy observador Incluso noto las animaciones de ventana más pequeñas.
Sistema : Windows 7 Ultimate x64
CPU : Intel Core 2 Duo E7500 @ 2.93 GHz
RAM : 2 GB x 2 = 4 GB DDR2 @ 332 MHz
Placa base : Intel D945GCNL
Gráficos : ATI Radeon HD 4350 @ 1 GB
Audio dedicado : M-Audio FastTrack Pro
HDD : Samsung HD753LJ 733 GB y Samsung HD160JJ 156 GB
Como puede ver, mi sistema es viejo.
Respuestas:
Este es un intento de proporcionar una respuesta completa resumiendo bits de respuestas individuales ya existentes, con algún contenido agregado. La lista intenta incluir todas las posibilidades para un caso general, incluso si se pueden descartar algunas para este caso en particular.
Diferencia de conjunto de instrucciones de CPU
Según lo descrito por Joel Coehoorn , para un código nativo x64 está disponible un conjunto de registros más grande, así como algunas instrucciones adicionales (por ejemplo, se garantiza que todas las CPU x64 implementarán instrucciones SSE y SSE2). Esto significa que el sistema operativo x64 nativo y los controladores pueden ser más eficientes.
Mejor utilización de RAM
64b puede usar 4 GB completos (e incluso más cuando está disponible). Además, algunos límites internos del sistema operativo (grupo paginado / no paginado, tamaño máximo de caché) aumentan con el sistema operativo 64b . Como resultado, tanto la paginación de memoria como el almacenamiento en caché de archivos pueden ser más eficientes.
Diferente posición del disco duro
Cuando tiene dos sistemas operativos instalados en dos particiones del mismo disco, una de esas dos particiones se cierra en el borde exterior, que generalmente es más rápido .
Estado del sistema operativo diferente
Cuando tiene dos sistemas operativos, cada uno de ellos puede estar en un estado un poco diferente. Uno de ellos puede estar más fragmentado que el otro, uno de ellos puede tener un registro un poco más limpio o menos servicios instalados o aplicaciones en segundo plano que el otro.
Mejores conductores
Otra posibilidad es que los controladores x64 podrían ser de mejor calidad que x86, no debido a algunas diferencias fundamentales de arquitectura, sino simplemente porque su proveedor tomó más esfuerzo para optimizarlos y ajustarlos.
Direccionamiento 64b
Agrego esto solo por completo, ya que para la gran mayoría de las aplicaciones cotidianas esta diferencia no juega ningún papel, y definitivamente no es relevante para lo que Jasper describe en su pregunta.
Si tiene una aplicación que procesa grandes cantidades de datos (por ejemplo, trabajar en Photoshop con grandes imágenes), ejecutar la versión 64b puede marcar una gran diferencia siempre que tenga 4 GB o más de RAM instalada.
¿Qué significa realmente "más rápido"?
Aquí está la lista de un comentario sobre otra respuesta , cuáles son exactamente las "cosas más rápidas" que Jasper puede ver:
Difícil de explicar. La animación de Windows la realiza la GPU en Windows 7 y la GPU es la misma. La carga en la CPU es insignificante. (Supongo que está utilizando el escritorio Aero).
Podrían ser controladores mejor sintonizados o controladores que aprovechen x64,.
Podría ser causado por una partición más rápida (no relacionada con el sistema operativo) o por un mejor manejo de caché en el sistema operativo x64.
Comprensible. El rendimiento de los juegos está determinado por la CPU y la GPU. En caso de limitación de la CPU, el código limitante es el juego en sí, que es el mismo código x86 con poca interfaz con el sistema operativo x64. El rendimiento de la CPU es, por lo tanto, el mismo. La GPU es la misma. La sobrecarga del controlador y el sistema operativo en un juego bien programado es baja, por lo tanto, no es probable que se muestren aquí las diferencias de controlador o sistema operativo.
fuente
El cambio de 32 a 64 bits no es el único cambio en la arquitectura x64. x64 también agrega más registros de CPU y nuevas instrucciones de CPU. Un sistema operativo que sabe cómo aprovecharlos puede obtener un modesto aumento de rendimiento del mismo hardware. Ah, y recuperar 1GB de RAM que solía estar dirigido a su tarjeta de video tampoco hace daño.
fuente
Advertencia: esta es una pregunta un poco más compleja de lo que te habrás dado cuenta, y ciertamente más de lo que la mayoría de las respuestas han presentado. Para tratar de cubrir al menos un poco más de la historia, esta publicación es bastante larga ...
En primer lugar, la situación con la memoria de video. La totalidad de la memoria de la tarjeta de video no es (al menos normalmente) directamente visible en el espacio de direcciones de la CPU. Por lo general, tiene una "ventana" de aproximadamente 128-256 megabytes de memoria de video visible para la CPU. La GPU puede asignar diferentes partes de su memoria a esa ventana, por lo que normalmente puede escribir en la mayoría de la memoria de la GPU desde la CPU, pero debe informar a la GPU con anticipación sobre lo que va a escribir antes de poder hacerlo. Solo por ejemplo, cuando usa DirectX y desea escribir directamente en la memoria de gráficos, puede hacerlo, pero para hacerlo, comienza llamando
LockRect
para que la GPU asigne la memoria correcta en la ventana (y como tan pronto como termines, llamasUnlockRect
para que pueda asignar otra memoria según sea necesario). Al menos en el caso típico, puede ajustar el tamaño de la ventana de video en la configuración del BIOS.En segundo lugar, incluso en el modo de 32 bits, los procesadores x86 admiten lo que se denomina Extensiones de dirección física (PAE), que permite que la CPU aborde más de 4 Gig. de la memoria Microsoft admite PAE en algunas versiones de Windows, pero solo la relativamente costosa Enterprise Edition de Windows Server. Además, el programa debe estar escrito específicamente para usar AWE. Solo unos pocos programas (por ejemplo, SQL Server Enterprise Edition) lo han hecho alguna vez. En pocas palabras: es posible, pero bastante raro.
En cuanto a la lectura de 64 bits a la vez: el último procesador en leer datos de solo 32 bits a la vez fue el 486. Comenzando con el Pentium, todos los procesadores han tenido buses de datos de 64 bits. Tenga en cuenta que el bus de direcciones no es el mismo que el bus de datos, por lo que expandirlo a un bus de datos de 64 bits no permitió que el procesador trabajara con más memoria (aunque, como sucede, se agregó PAE en el Pentium Pro, por lo que fue casi concurrente con la expansión a un bus de datos de 64 bits).
Aunque el Pentium podía leer 64 bits de datos en un solo ciclo de reloj, internamente (en su mayoría) procesaba datos de 32 bits a la vez. El bus más ancho ayudó principalmente a compensar la diferencia de velocidad entre la CPU y la memoria principal. Las instrucciones MMX del Pentium MMX admitían el procesamiento de datos en fragmentos de 64 bits, pero era bastante torpe de usar y (en particular) la mayoría de los compiladores no generaban el código MMX, por lo que tuvo que escribir en lenguaje ensamblador para usarlo. . El Pentium también admite operaciones de 64 bits (y 80 bits) para números de coma flotante, pero eso se usa solo para una minoría bastante pequeña de la mayoría de la programación (y, en general, era más lento que trabajar con enteros de todos modos).
El diseño x86-64 tiene el doble de registros de propósito general que el diseño x86 de 32 bits, y cada uno de esos registros tiene 64 bits de ancho. Sin embargo, cuando la CPU se ejecuta en modo de 32 bits, solo se puede usar el subconjunto de los registros que existían en las CPU de 32 bits.
Volviendo al punto flotante por un momento, en modo de 32 bits, la matemática de punto flotante se realiza utilizando el conjunto de instrucciones diseñado originalmente para el coprocesador matemático Intel 8087. Esto utiliza un modelo que hace que sea bastante difícil hacer un uso completo de sus capacidades. Intel (y AMD) han agregado más recientemente "Streaming SIMD Extensions", o SSE. La mayoría de los compiladores de 64 bits generan código que puede / usa SSE en lugar de punto flotante compatible con 8087. El "SIMD" en SSE significa "instrucción única, datos múltiples". Lo que esto significa es que una instrucción SSE puede llevar a cabo dos operaciones de punto flotante en dos datos separados. Aunque esto no necesariamente duplica la velocidad, generalmente mejora la velocidad al menos un poco.
Finalmente, probablemente debería señalar que hay una parte de la comparación que generalmente es un poco injusta. Cuando instala un nuevo sistema operativo, casi siempre es al menos un poco más rápido que un sistema operativo que ha estado en uso durante bastante tiempo. Los programas almacenan datos en el registro, en el disco duro, etc. Cuantos más datos agregue, más trabajo tenderá a involucrarse para encontrar los datos que desea en un momento dado. Si bien las empresas que venden "limpiadores de registro" y con tanta frecuencia exageran este efecto, de todos modos es cierto hasta cierto punto. Como tal, si todo lo que hizo fue volver a formatear su disco duro y volver a instalar exactamente el mismo sistema operativo, podría esperar ver una mejora en la velocidad, y si ha tenido el viejo sistema operativo instalado y utilizado durante mucho tiempo , esa mejora (por sí sola) puedeSé bastante sustancial. Al menos parte de la mejora de velocidad que está viendo puede ser independiente de cualquier diferencia real entre los dos sistemas operativos.
Hay más que eso, por supuesto, pero comienzas a tener la idea. No se trata tanto de una sola característica que hace una gran diferencia, sino de muchas características que generalmente hacen diferencias bastante pequeñas individualmente, pero muchas de ellas se suman (o incluso se multiplican) para hacer una diferencia bastante sustancial en general.
fuente
Es posible que no tenga nada que ver con 32 vs 64 bit.
No está claro en su publicación qué quiere decir con '64 bits es más rápido'. ¿Vamos a tomar de eso que reinstalaste Windows de 64 bits en una máquina en la que anteriormente tenías un Windows de 32 bits? Si es así, el 'restablecimiento' de la estructura del archivo puede explicar fácilmente los cambios de velocidad. Una nueva instalación, especialmente si ha reformateado, suele responder mejor que una instalación anterior en la que los archivos se fragmentan, el espacio en disco se agota, el registro se abarrota, etc.
También podría ser uno de los controladores ... por ejemplo, los controladores de video más nuevos podrían ser más rápidos y estar mejor optimizados por el proveedor que las versiones anteriores de x86. O el controlador del disco duro podría ser mejor.
fuente
En pocas palabras, es porque su computadora puede procesar 64 bits (8 bytes) de datos por ciclo de reloj. Su procesador recibe datos en forma de bits previamente organizados conocidos como palabras. Las palabras en la arquitectura x64 tienen el doble del tamaño de las palabras en la arquitectura x86. Aunque es posible que su procesador no esté procesando datos más rápido (su Core 2 está a 2.93 Ghz en ambas instalaciones), sin embargo, está procesando datos de manera más eficiente. Además, como se menciona en los comentarios, le permitirá abordar toda su RAM porque su procesador está leyendo desde su RAM en palabras de 64 bits. De Wikipedia :
Para un procesador de 64 bits, esto no se multiplica por 2, aumenta exponencialmente:
Este artículo , aunque un poco anticuado, es una lectura muy informativa sobre cómo funciona el procesamiento de 64 bits.
Quiero señalar que esto en realidad no se traduce en un aumento del rendimiento del doble, esto se debe a que el rendimiento real depende de muchas otras variables (velocidad del disco, velocidad del bus, caché del procesador, memoria disponible, etc.). Pero debería ver un aumento en el rendimiento en Windows, ya que se puede cargar más sistema operativo en la memoria y el procesador puede abordarlo de manera más eficiente.
fuente
Creo que la razón más profunda por la que el sistema es más rápido usando un sistema operativo de 64 bits es porque el sistema operativo de 32 bits no es capaz de utilizar toda la RAM del sistema.
El sistema operativo de 32 bits podrá controlar 32 bits, es decir, 4 GB de espacio de direcciones físicas. Este espacio de direcciones incluye memoria del sistema, memoria de video, dispositivos IO, etc. Por lo tanto, cuando tiene 1 GB de memoria RAM de video dedicada, puede restar el primer GB de su memoria RAM disponible. Entonces, los otros dispositivos probablemente restarán otros 200 MB más o menos.
Esto te deja con solo 2.8 GB de RAM para aplicaciones. No mucho en Windows 7;)
El sistema operativo de 64 bits, por otro lado, es capaz de utilizar toda su RAM.
fuente
Instalé 32 bits y 64 bits en dos portátiles Lenovo x100e idénticos por separado. 32 bit tenía 2G ram y 64 bit tenía 4G ram y el 32 bit aún corría más rápido, más suave, más receptivo con mucho menos retraso que 64 bit, que estaba retrasado y lento. La CPU es una CPU de 64 bits. Los mismos controladores instalados y las actualizaciones de Windows realizadas en ambos. Creo que 64 bits es para máquinas de gama alta, no de nivel de entrada, incluso con CPU x64.
fuente