array size exceeds

Iniciado por Arobavx, 9 Diciembre 2010, 03:43 AM

0 Miembros y 1 Visitante están viendo este tema.

Arobavx

hola, tengo un problema al hacer muy grande un arreglo hay alguna forma de modificar el limite?cual es el limite? el error es el siguiente.
Citarjava.lang.OutOfMemoryError: Requested array size exceeds VM limit

sapito169

y por que tienes un array gigante mejor arregla tu aplicacion o en caso de que no haya problema usa cualquier base de datos como dervy

1mpuls0

Los errores más dificiles de capturar son los de "OutOfMemory" (quedarse sin memoria) ya que en muchos casos la aplicación queda en estado inconsistente.
A mi parecer si la aplicación se queda sin memoria es mejor terminarla, aunque muchas veces es imposible cambiar el código para hacerlo de manera limpia.

Como desarrolladores Java a veces vemos como la máquina virtual java se cuelga o se cae porque hacemos algo mal o por limitaciones del sistema.

La verdad no se muy bien que es lo que estes haciendo, pero podrias capturar el error un con try-catch.

Código (java) [Seleccionar]
public class RunOutOfMemory {

public static void main(String [] args) {
try {
long [] array = new long[Integer.MAX_VALUE];
System.out.println("Mi arreglo tiene un tamaño de: " + array.length);
}
catch(OutOfMemoryError e) {
System.out.println("El tamaño del arreglo excede el límite de la VM");
}
}
}



O bien con

Código (java) [Seleccionar]
throw new OutOfMemoryError("El tamaño del arreglo excede el límite de la VM")

Un saludo.
abc

Debci

O ampliar la memoria virtual de la maquina Java VM.
Es uno de los grandes inconvenientes de Java, que no todas las maquinas disponen de la misma memoria virtual para ejecutar el Java Runtime, mas vale avisar de ello con las excepciones como ya te han citado, o simplemente cortar la ejecución de la aplicación, aunque sucio, es rapido, pero siempre es mejor que el usuario sepa que ha ocurrido.

Saludos