Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 24728|Respuesta: 1

[Fuente] No se pude reservar suficiente espacio para un montón de objetos de 2097152KB

[Copiar enlace]
Publicado en 24/7/2017 10:43:36 | | | |
Error: No se pudo reservar suficiente espacio para el montón de objetos de 2097152KB

Inicié activemq y reporté un error, causado por una asignación excesiva, así que al asignar memoria MQTT, debe determinarse combinando el tamaño de memoria del servidor (usar free -g) y si JDK soporta ese tamaño.

Configuración de parámetros JVM

Parámetros principales:
-Xms: Tamaño inicial de memoria
-Xmx: Tamaño máximo de memoria
-Xmn: Tamaño de generación más joven

Utiliza el comando Java -Xmx2047M -version para ver si cumple:


Solución:

Inicio - > Panel de control - Sistema > - Configuración avanzada de > - Variables de entorno > - Variables de sistema >

Nueva variable:
Nombre de la variable: _JAVA_OPTIONS   
Valor variable: -Xmx1G






Anterior:MySQL consulta una tabla sin un número vacío de registros
Próximo:La diferencia entre servidor y cliente de la JVM de la máquina virtual de Java
 Propietario| Publicado en 24/7/2017 10:45:37 |
Recientemente estoy trabajando en un programa para Java. Originalmente, siempre me ha gustado la gestión de memoria de Java, no hay que preocuparse por asignar memoria, solo asignar, el recogedor de basura recuperará la memoria por ti. Ahora el programa se desarrolla con una gran cantidad de datos y, por rapidez, voy a cargar toda la información en la memoria, lo que garantizará una respuesta rápida. Sigo contando la memoria repetidamente, pensando en mi propia cantidad de datos, que debería ser suficiente al principio (mi máquina tiene memoria 4G, aunque Windows reconoce 3,5G, pero debería estar bien comparado con mi volumen de datos actual).

Inesperadamente, el programa del primer experimento duró unas horas y se encontró con una Excepción por Falta de Memoria. Mirando mis propios ajustes de VM, configuré -Xms512M -Xmx1024M. Sin pensarlo, lo cambié directamente a -Xms512M -Xmx2048M, y el resultado fue que no pude reservar suficiente espacio para el montón de objetos. El programa no puede levantarse. Solo entonces me di cuenta de que aún había un límite en la memoria máxima original. Busqué en Internet y encontré muchos artículos que hablan de este tema. Por último, encontré el artículo más útil en el foro DEV2DEV de BEA

Aquí el moderador YuLimin hizo la prueba y llegó a la conclusión:

Versión de la empresa JVM Cliente de memoria máxima (mega) Servidor de memoria máxima (mega)

DOM 1.5.x 1492 1520

DOM 1.5.5 (Linux) 2634 2660

DOM 1.4.2 1564 1564

SUN 1.4.2 (Linux) 1900 1260

IBM 1.4.2(Linux) 2047 N/A

BEA JRockit 1.5 (U3) 1909 1902

Ahora JDK1.6.0_05 uso, lo he probado. Lo más importante en el estado del cliente es que mi JDK no reconoce el parámetro -Server y no puede probar el estado del servidor. Las estimaciones son más o menos las mismas.

DOM 1.6.0 1442 N/d

Parece que es imposible usar una gran memoria en Java. Y el dicho general es que si la memoria es demasiado grande, el tiempo de recogida de basura será largo. Esto también es comprensible, generalmente se recopila cuando la memoria no es suficiente, la memoria de escaneo 2G es, por supuesto, mucho más lenta que la 1G, y hay más objetos de memoria, la relación estimada aumenta exponencialmente.

A continuación se adjuntan los métodos de prueba y los registros de prueba de YuLimin.

Método de prueba: Utiliza el comando java -XmxXXXXM -version para probar en la línea de comandos y luego aumenta gradualmente el valor de XXXX; si se ejecuta normalmente, significa que el tamaño de memoria especificado está disponible, de lo contrario se imprimirá un mensaje de error.
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com