Hay un max. el tamaño puede establecer Xmx a? Me puse a 1024m y eclipse abre aceptar. Cuando me puse por encima del 1024, eclipse no se abre y me sale el error «jvm terminado. Código de salida=-1″…

Yo estaba haciendo esto porque sigo recibiendo un «java.lang.OutOfMemoryError: Java heap space». Estoy leyendo en un 35.5 Mb .archivo txt y este error se produce cuando se acaba de leer en el archivo con el «while((line = reader.readLine()) != null)» bucle. Yo habría pensado que 1024 mb habría sido suficiente. Alguien me puede ayudar?

  • Puede publicar su código para el archivo de método de lectura – Usted debe de estar haciendo algo mal 😉
  • nickolai hace una buena sugerencia (run configurations), así como Richie_W (debe de estar haciendo algo malo – es el archivo > 1G?).
  • Pruebe también los ajustes (stackoverflow.com/questions/142357/…) y tratar de seguir su aplicación con un JConsole
  • El archivo es de sólo 35.5 Mb.
InformationsquelleAutor | 2009-01-20

4 Comentarios

  1. 33

    Sí, hay un máximo, pero es dependiente del sistema. Pruébalo y verás, doblando hasta llegar a un límite, a continuación, la búsqueda de abajo. Al menos con Sun JRE 1.6 en linux se muy interesante, si no siempre mensajes de error informativo (peregrino es el netbook de ejecución de 32 bits de ubuntu con 2G de RAM y sin swap):

    peregrino:$ java -Xmx4096M -cp bin WheelPrimes 
    Invalid maximum heap size: -Xmx4096M
    The specified size exceeds the maximum representable size.
    Could not create the Java virtual machine.
    
    peregrino:$ java -Xmx4095M -cp bin WheelPrimes 
    Error occurred during initialization of VM
    Incompatible minimum and maximum heap sizes specified
    
    peregrino:$ java -Xmx4092M -cp bin WheelPrimes 
    Error occurred during initialization of VM
    The size of the object heap + VM data exceeds the maximum representable size
    
    peregrino:$ java -Xmx4000M -cp bin WheelPrimes 
    Error occurred during initialization of VM
    Could not reserve enough space for object heap
    Could not create the Java virtual machine.
    
    (experiment reducing from 4000M until)
    
    peregrino:$ java -Xmx2686M -cp bin WheelPrimes 
    (normal execution)

    La mayoría son auto-explicativas, excepto-Xmx4095M que es bastante extraño (tal vez un signed/unsigned comparación?), y que dice de la reserva 2686M en una de 2GB máquina sin swap. Pero no es indicio de que el tamaño máximo es de 4G 2G no para el de 32 bit VM, si el sistema operativo permite a la dirección que mucho.

    • el uso de «java -Xmx4000M -versión» para ser más rápido…
  2. 5

    Creo que una de 32 bits de la JVM tiene un máximo de 2 gb de memoria.Esto puede estar fuera de fecha, aunque. Si he entendido correctamente, se establece la -Xmx en Eclipse lanzador. Si usted desea aumentar la memoria para el programa se puede ejecutar desde Eclipse, debe definir -Xmx en la opción «Ejecutar->Ejecutar las configuraciones…»(seleccione su clase y abrir los Argumentos ficha ponerlo en la VM argumentos de la zona) en el menú, y NO en Eclipse inicio

    Edición: detalles que usted solicitó.
    en Eclipse 3.4

    1. Ejecutar->Ejecutar las Configuraciones…

    2. si la clase no aparece en la lista de la izquierda en la «Aplicación Java» subárbol, haga clic en «Nuevo Lanzamiento de configuración» en la esquina superior izquierda

    3. a la derecha, pestaña «Principal» asegurarse de que el proyecto y la clase son los correctos

    4. seleccionar los «Argumentos» de la ficha de la derecha.
      esta tiene dos áreas de texto. uno es para el programa de los argumentos que se pondrá en la args[] matriz suministrado en su método main. el otro es para los argumentos de VM. poner en una sola, con los argumentos de VM(inferior iirc) los siguientes:

      -Xmx2048m

      Creo que 1024m debe más que suficiente para lo que necesita, aunque!

    5. Haga clic en Aplicar y, a continuación, haga Clic en Ejecutar

    6. Debería funcionar 🙂

  3. 1

    Echar un vistazo a este para algunos errores comunes en la configuración de almacenamiento dinámico de java. Usted probablemente ha establecido el tamaño de la pila a un valor mayor que su memoria física del equipo.

    Debe evitar la solución de este problema aumentando el tamaño de la pila. En su lugar, usted debe perfil de su aplicación para ver donde pasa una gran cantidad de memoria.

  4. 1

    Creo que es alrededor de 2 GB. Mientras que la respuesta por Pete Kirkham es muy interesante, y probablemente tiene la verdad, me han asignado más de 3GB sin error, sin embargo, no hizo uso de 3GB en la práctica. Eso podría explicar por qué fueron capaces de asignar 2,5 GB en memoria RAM de 2 gb con ningún espacio de intercambio. En la práctica, no estaba usando 2.5 GB.

Dejar respuesta

Please enter your comment!
Please enter your name here