elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 01:24  


Tema destacado: ¡Aprende hacking con práctica! - WarZone, el wargame de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  array size exceeds
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: array size exceeds  (Leído 2,074 veces)
Arobavx

Desconectado Desconectado

Mensajes: 16



Ver Perfil WWW
array size exceeds
« en: 9 Diciembre 2010, 03:43 »

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.
Citar
java.lang.OutOfMemoryError: Requested array size exceeds VM limit


« Última modificación: 9 Diciembre 2010, 03:48 por Arobavx » En línea

sapito169


Desconectado Desconectado

Mensajes: 421



Ver Perfil
Re: array size exceeds
« Respuesta #1 en: 9 Diciembre 2010, 04:58 »

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


En línea

Darhius


Desconectado Desconectado

Mensajes: 427


Divide y vencerás.


Ver Perfil
Re: array size exceeds
« Respuesta #2 en: 9 Diciembre 2010, 07:06 »

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
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
throw new OutOfMemoryError("El tamaño del arreglo excede el límite de la VM")

Un saludo.
En línea

"Cuenta mi historia... a quienes pregunten, cuéntala con verdad, las cosas malas junto con las buenas  y permite que sea juzgado apegado ellas... el resto... es silencio." Dinobot (Beast Wars Transformers)
Debci
Moderador
***
Desconectado Desconectado

Mensajes: 1.945


Actualizate o muere!


Ver Perfil WWW
Re: array size exceeds
« Respuesta #3 en: 12 Diciembre 2010, 21:41 »

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
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda para pasar un array que esta en ARGV[] a un array INTEGER..
Programación General
nitr0us 7 1,998 Último mensaje 18 Febrero 2004, 17:23
por zheo
Copiar parte de una array a otra array
Programación Visual Basic
sircid 3 1,683 Último mensaje 19 Diciembre 2007, 11:27
por LeandroA
inicialización de array a otro array
Programación C/C++
arenoide 11 910 Último mensaje 16 Diciembre 2008, 17:39
por agente_naranja
Ayuda: Local data exceeds data segment size limit
Programación C/C++
mjpedia 2 727 Último mensaje 4 Junio 2010, 22:10
por Didacso
Obtener Size de un Form
.NET
Braayhaan 1 650 Último mensaje 6 Septiembre 2010, 13:59
por raul338
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines