¿Por qué las aplicaciones de software de 64 bits consumen el doble de RAM en comparación con las aplicaciones de 32 bits?

Bueno, teóricamente, como dice Vladislav, hay pocas razones para que el software en su conjunto use más RAM. Entonces, diría que si el mismo programa se realiza en 32 y 64 bits, ambos usarían RAM similar. Puede ser un poco más en el lado de 64 bits (o tal vez invertido), pero ciertamente no dos veces.

En la práctica, aunque los programadores tienden a usar lo que está disponible (al menos cuando no se les obliga específicamente a un máximo arbitrario). Por lo tanto, es posible que el programa esté escrito para usar más RAM para una versión de 64 bits, ya que se puede direccionar más RAM que en 32 bits. Por lo tanto, es posible que vea que 64 bits usa más porque está hecho para usar más. Lo que tampoco es algo malo en sí mismo: cuanto más trabajo esté en la RAM en lugar de cambiarlo al disco, más rápido puede ejecutarse un programa.

Véalo de esta manera: si su hardware tiene 8GB disponibles y sus programas en conjunto solo usan 2GB … está desperdiciando efectivamente 6. Podría haber prescindido de esa RAM extra tan bien como lo está haciendo ahora, ya que simplemente no se usa en absoluto.

Ellos no. La guía Lifehacker para sistemas operativos de 64 bits frente a 32 bits, la parte que dice “¿Utiliza 64 bits el doble de RAM”? Si bien se espera un aumento debido a que varios tipos se vuelven más anchos (especialmente los punteros), el uso principal de la memoria principal probablemente no será punteros, por lo que no debe esperar diferencias drásticas entre las aplicaciones de 32 bits y 64 bits.

Lo que realmente sucede es que el programador escribe lo que necesita escribir. Si se queda sin memoria, lo reescribe para poder cargar el módulo utilizado actualmente, necesitando menos memoria. Si tiene más memoria, no alcanza ese error (sin memoria), por lo que simplemente sigue escribiendo.

No es que los programadores (buenos, de todos modos) escriban deliberadamente código más grande o se vuelvan más descuidados a medida que aumenta el espacio de direcciones de memoria, es solo que ya no tenemos que usar nombres de variables de un solo carácter, comenzar en la línea 0 e incrementar en uno, usar múltiples declaraciones por línea, y un gran calzador, para forzar el código en la pequeña cantidad de espacio de memoria disponible. Podemos agregar esta función útil, y esa trampa de error que debería estar allí, y no preocuparse por quedarse sin memoria. Entonces, la versión anterior usaba un total de 3.2GB cuando se estaba ejecutando y la nueva versión usa 5.2GB. Como tenemos 64 bits de espacio de direcciones, 5.2 GB no es un problema.

Compile los mismos archivos de origen que el código de 32 bits y el código de 64 bits y verá un ligero aumento de tamaño debido a que, como dijo Vladimir, algunos tipos se están ampliando. (Y eso puede corregirse. Si necesita una variable de 16 bits, use una variable de 16 bits, aunque ahora se llama pequeña, no pequeña).

Solo para agregar, la mayoría de los programadores seleccionan los tipos de datos (int8 / int16 / int32 / int64 / double …) que necesitan para fines específicos (aunque ‘int’ en C ++ cambia con la plataforma). Si esto cambiara repentinamente debido a 64 bits frente a 32 bits, muchos programas podrían fallar (por ejemplo, si las matemáticas de cambio de bits [es decir, << o >>] se usaran de alguna manera especial). La mayoría de los desarrolladores nunca querrían ese dolor de cabeza, por lo que cuando se compila un programa en varias plataformas, se espera, en su mayor parte, que se ejecute igual o similar. Si necesito asignar una matriz de 256 int32s, eso es lo que también obtengo en x64, por lo que no cambia la memoria en absoluto. Dicho esto, la memoria aumenta porque los miembros de la clase en los objetos están alineados con límites de 64 bits, y eso aumentará un poco los requisitos de memoria. Al final, no es el doble, sino cómo se asigna o alinea la memoria dentro de una aplicación.

El tamaño de bit es una medida de cuántos bits se necesitan para identificar de manera única cada byte de RAM en un sistema. 64 bits es el doble de 32, por lo tanto, el doble de datos.

Además, dado que la CPU probablemente funciona mejor con 64 bits, los datos más pequeños a veces reciben 64 bits completos, incluso si solo necesitan 16 o 32. Nuevamente, esto es el doble de RAM que un sistema de 32 bits.

Por supuesto, un programa diseñado para la eficiencia de RAM no tendría este segundo problema. Sin embargo, la mayoría del software está diseñado para la velocidad en lugar de la eficiencia.

Porque 32 x 2 = 64

bueno … cuando un software es de 32 bits … se necesitan 32 bits (lenguaje binario) para ejecutarse … cuando se toma un software de 64 bits se necesitan 64 bits para ejecutarse y funcionar … ya que se necesitan más bits … el consumo de RAM es más que en comparación con 32 bits

More Interesting

Mientras buscaba las especificaciones del Galaxy S7 Edge, me encontré con 4 GB de RAM (OK), Memoria interna de 32 Gb (OK), ahora '32GB ROM', ¿Qué es esta ROM de 32 GB?

Mi netbook (procesador Atom, Windows 7, RAM 2 GB) se cuelga muy a menudo. ¿Cómo lo soluciono?

Soy estudiante de ingenieria mecanica. Uso Autodesk Inventor y otro software relacionado con mi tema. ¿Es la computadora portátil i5 con 4GB de RAM apropiada para terminar cualquier trabajo que use ese software?

¿Debo comprar una MacBook Pro 2015 MF840 i5, 8 GB de RAM y 256 SSD?

¿Qué es mejor: DDR4 4GB RAM o DDR3 8GB RAM?

¿Por qué usamos RAM? ¿Podemos manejar nuestra máquina sin RAM?

¿Se pueden mejorar los 896 MB de espacio RAM en mi computadora portátil a 1 GB? ¿Si es así, entonces cómo?

Muchos gurús de Linux recomiendan intercambiar particiones dos veces el tamaño de la RAM, pero Fedora Security 25 me empujó a una partición del mismo tamaño que la RAM. ¿Por qué fue menos?

¿Por qué Bill Gates consideró exactamente 640 KB de RAM como suficientes para siempre? ¿Por qué no 641 KB o 639 KB?

¿Qué es más grande MB o GB?

¿Puedes actualizar el ram o gpu de tu XboxOne?

¿Cuál sería un buen teléfono inteligente con menos de Rs 10,000 con una RAM de 2 GB y una cámara de 13 MP?

¿Cuánto más lento se reanudaría una PC desde la hibernación con 16 vs 8GB de RAM con un SSD rápido?

¿Debo obtener Surface Pro 4 de 8 GB o 16 GB?

¿Qué tipo de procesador es mejor para un teléfono inteligente? ¿Qué es más importante en un teléfono inteligente, la RAM o el procesador?