memoria maquina aumentar java memory-management jvm

aumentar memoria maquina virtual java linux



¿Cómo obtener los tamaños máximos del montón y el permgen de la JVM? (3)

Intento averiguar programáticamente el máximo de permgen y el tamaño máximo de almacenamiento dinámico con el que se ha invocado una JVM para mi programa, no lo que está actualmente disponible para ellos.

¿Hay una manera de hacer eso?

Estoy familiarizado con los métodos en el objeto Java Runtime, pero no está claro lo que realmente ofrecen.

Alternativamente, ¿hay alguna manera de preguntarle a Eclipse cuánto se asignó para estos dos?


En cuanto a eclipse, intente buscar una herramienta de creación de perfiles. Creo que NetBeans tiene uno por defecto.


Prueba esto:

MemoryMXBean mem = ManagementFactory.getMemoryMXBean(); mem.getHeapMemoryUsage().getUsed(); mem.getNonHeapMemoryUsage().getUsed();

Pero solo ofrecen datos de instantáneas, no un valor acumulado.


Pruebe algo como esto para max perm gen:

public static long getPermGenMax() { for (MemoryPoolMXBean mx : ManagementFactory.getMemoryPoolMXBeans()) { if ("Perm Gen".equals(mx.getName())) { return mx.getUsage().getMax(); } } throw new RuntimeException("Perm gen not found"); }

Para el montón máximo, puede obtener esto desde Runtime, aunque también puede usar el MemoryPoolMXBean apropiado.