¿Cuál es la cantidad máxima de espacio dinámico que se puede asignar para Java en una plataforma de 64 bits? ¿Es ilimitado?Memoria máxima para 64 bits Java
Respuesta
Teóricamente 2 , pero puede haber limitaciones (obviamente)
Según this FAQ sólo está limitado por la memoria y el espacio de intercambio en el sistema local:
en 64 bits máquinas virtuales, que tienen 64 bits de direccionabilidad para trabajar, lo que da como resultado un tamaño máximo de almacenamiento dinámico de Java limitado solo por la cantidad de memoria física y espacio de intercambio que proporciona su sistema.Consulte también ¿Por qué no puedo obtener un montón más grande con la JVM de 32 bits?
Además, tenga en cuenta que debe establecer el montón máximo a través de la línea de comandos. Sin un comando -Xmx. sin ella, Java usa 64mb + 30% = 83.2mb como un montón máximo predeterminado en máquinas de 64 bits según las mismas preguntas frecuentes.
java -Xmx1000g myClass
funciona bien en mi máquina. Pero aún no parece ser compatible con el modificador 't', por lo que no puede especificar la memoria máxima en terabytes todavía :)
1000g trabajado para usted? Pensé que 'java' validaría si hay suficiente memoria antes de tomar esa opción. – asgs
Si pudiera convertir cada átomo del universo en un byte de RAM, podría asignarlo en un espacio de direcciones de 64 bits.
En realidad, es una ligera exageración.
Hay 10^80 átomos en el universo (según WolframAlpha), y 2^64 bytes de espacio de direcciones en un sistema de 64 bits, por lo que solo sería posible direccionar 1 de cada 5x10^60 átomos . Pero si tiene 18 qintillones de bytes de RAM, probablemente necesite un par de agujeros negros cuánticos para alimentarlo.
@Stephen, edité la respuesta antes de publicar su comentario. ¡WolframAlpha gobierna! –
¡No quisiera esperar una colecta completa sobre eso! – overthink
Necesita 266 bits para indexar cada átomo en el universo –
En teoría es entre 2^63
y 2^64
bytes.
En la práctica, está limitado por la cantidad de memoria física y espacio de intercambio disponible en su máquina. Y la memoria física está a su vez limitada por su conjunto de chips (es decir, el número de pines de dirección en el bus de direcciones de la memoria física) y la placa base (es decir, el número y tamaño de los zócalos DIMM).
Para AMD64, las especificaciones actuales prevén 40-52 pines de dirección. Además, admiten arquitecturas NUMA donde cada procesador tiene un trozo de memoria al que otros procesadores solo pueden acceder indirectamente. – MSalters
Esto probablemente dependa del sistema en el que se esté ejecutando su VM. Si está ejecutando una arquitectura AMD x64, el espacio de direcciones de los procesadores actualmente enviados usa 48 Bits, no 64. Esto da como resultado un máximo teórico de aproximadamente 256 TB. (Ver http://en.wikipedia.org/wiki/X86-64)
No soy un especialista en máquinas virtuales, pero cualquier sistema operativo moderno normalmente dará tanta memoria como RAM física más memoria virtual disponible. Probablemente eso es lo que la VM pasará a su aplicación dependiendo de su configuración.
El manual de AMD pertinente establece que el espacio de direcciones virtuales es, de hecho, 64 bits (Capítulo 2.2.1, Manual del programador de arquitectura AMD64, v3.14, septiembre de 2007) – MSalters
Con las máquinas virtuales recientes de Sun, el tamaño de límite de montón práctico suele ser 512 veces la memoria física y/o virtual disponible. Incluso si el límite teórico es mucho mayor, la máquina virtual asignará 1 byte para propósitos de matriculación por cada 512 bytes de memoria de pila al inicio, por lo que 1TB de pila requerirá inmediatamente 2 GB para la gestión de la memoria.
- 1. ¿Máxima memoria alcanzable .NET?
- 2. Programación Java para JVM de 64 bits
- 3. La estimación del tamaño del montón de JVM máxima de seguridad en Java de 64 bits
- 4. Memoria máxima de Java en Windows XP
- 5. Aplicaciones Java de 64 bits: ¿Se requiere un SO de 64 bits, un JRE de 64 bits y una Aplicación de 64 bits?
- 6. Memoria máxima. Un proceso .NET puede asignar
- 7. ¿Ventajas/inconvenientes de ejecutar JVM de 64 bits en un servidor Linux de 64 bits?
- 8. ¿Aplicación de 32 bits o de 64 bits en el sistema operativo de 64 bits?
- 9. Java JDK 32 bits frente a 64 bits
- 10. LeakDiag para Windows de 64 bits?
- 11. Compatibilidad con Java de 32 bits frente a 64 bits
- 12. Descarga de Java JRE de 64 bits para Windows?
- 13. Límite de memoria de proceso del proceso de 64 bits
- 14. 64 bits ODBC Excepción
- 15. Longitud máxima de memoria intermedia para sendto?
- 16. 64 bits por división de 32 bits
- 17. IEEE-754 Doble (coma flotante de 64 bits) vs. Largo (Entero de 64 bits) Revisited
- 18. .NET 3.5SP1 Modelo de memoria de 64 bits en comparación con el modelo de memoria de 32 bits
- 19. cocoa ¿Los binarios de 64 bits pierden memoria? (liberar NSData no libera la memoria)
- 20. Java performance 64 bit
- 21. Beneficios de la plataforma Java de 64 bits
- 22. error al instalar Java en Ubuntu 64 bits 10
- 23. MapViewOfFile compartido entre procesos de 32 bits y 64 bits
- 24. SendInput falla en 64 bits
- 25. Pregunta Quicktime de 64 bits
- 26. alineación uint32_t en 64 bits?
- 27. ¿Bluecove funciona con Linux 64 bits?
- 28. Longitud máxima para un vector en R
- 29. Java Accesibilidad de 32 bits en una máquina de 64 bits
- 30. Java 64 bit Pregunta JDK
¿Por qué cree que es ilimitado? –