xmx xmn how java memory jvm weka

xmn - Aumentar el tamaño de pila en java para weka



limit heap size java (15)

Estoy tratando de aumentar el tamaño del montón en java para weka que sigue fallando. Utilicé la línea sugerida:

> java -Xmx500m -classpath

pero me sale el siguiente error:

-classpath requires class path specification

No estoy seguro de lo que esto significa. ¿Alguna sugerencia?


Si estamos utilizando la CLI de Weka Workbench o el Explorador de conocimientos, debemos cambiarlo como se muestra a continuación.

Como la documentación sugiere que el parámetro de tiempo de ejecución debe ser -Xmx [size_required] m donde [size_required] es el tamaño de memoria que desea mantener para evitar la excepción de memoria.

Abre RunWeka.ini

Definir maxheap = [size_required] G

En mi caso mantuve maxheap = 4G, se puede establecer como maxheap = 4096m y agregar -Xmx # maxheap # a todas las opciones de ejecución en # setups (con el prefijo "cmd_"), secciones junto a los comandos de java como a continuación

cmd_default=javaw -Xmx#maxheap# ............... cmd_console=cmd.exe /K start cmd.exe .................. cmd_explorer=java -Xmx#maxheap# ................. cmd_knowledgeFlow=java -Xmx#maxheap#.................... maxheap=4G

Verifique lo mismo reiniciando Weka y Ayuda >> SystemInfo


Ejecuta este comando en tu terminal:

java -Xmx1024m -jar weka.jar


En Ubuntu tuve el mismo problema, pero lo solucioné aumentando la cantidad de memoria para usar en la Máquina Virtual de Java. Ejecute esto: weka -m 1024m


Estoy ejecutando Weka 3.6 en windows. Esto es lo que hice. Vaya al directorio de instalación de Weka y encontrará un archivo RunWeka.bat. Abra este archivo en un editor de texto y agregue el argumento -Xmx en la línea de comandos java.

por ejemplo, esto establece en 4 GB de memoria,% _java% -Xmx4096m -classpath. RunWeka -i. / RunWeka.ini -w. / Weka.jar -c% _cmd% "% 2"


La respuesta oficial de Weka (para todos los sistemas operativos y versiones de Weka) se puede encontrar en http://weka.wikispaces.com/OutOfMemoryException .

En caso de que esté utilizando una versión reciente de Weka en Windows, la respuesta es:

Modifique el parámetro maxheap en el archivo RunWeka.ini .


La mejor manera de hacerlo usando este comando.

java -Xmx1024m -[weka classifier] -t [training file path]


La respuesta oficial de Weka es correcta ... Pero ... crucial es primero deshacerse de todos los archivos JVM e instalar la versión relevante de Java de 32 o 64 bits. No usar la versión relevante causa muchos problemas, incluida la imposibilidad de aumentar el montón más allá de 1024 m (cambiando el archivo ini).


Las respuestas anteriores son demasiado antiguas (la última es hace 1 año). Tuve el mismo problema con mi WEKA (versión 3.8.1) en Windows 10.

Tuve un problema para actualizar el tamaño del montón, la forma en que lo arreglé es agregando una variable de entorno (en el panel de control) de la siguiente manera:

JAVA_OPTS = -Xms30000m -Xmx30000m

Consejo : Solo asegúrese de que RunWeka.ini esté usando esta variable de entorno.

En el ejemplo anterior doy WEKA 30GB. Funciona.

Espero que sea de ayuda para algunas personas.


Lo que encontré fue que el problema real estaba en el archivo ''RunWeka.ini'' en ''/Program Files (x86)/Weka-3-6'' . Lo abrí con el bloc de notas y en el centro del archivo hay una línea ''maxheap = 512m'' .

Cambié la línea para leer ''maxheap=2000m'' , ''maxheap=2000m'' el archivo y recargué weka y esto solucionó mis problemas.

No estoy seguro de si esta es la forma correcta de hacerlo o no, pero funcionó para mí.


Omita la opción -classpath . Use solo la opción -Xmx500m .

Entonces, en lugar de solo

java weka.core.Instances data/soybean.arff

tú lo haces:

java -Xmx500m weka.core.Instances data/soybean.arff

Si ejecuta weka a través de algún script (RunWeka.bat por ejemplo), entonces necesita modificar ese script (con algún editor de texto como el bloc de notas).


Para Mac OS, debe editar un archivo de configuración para aumentar el tamaño del montón de la aplicación Weka UI.

Estoy repitiendo lo que escribí en: ¿Existe alguna solución para resolver el error de memoria del "espacio de almacenamiento Java" cuando ya se ha especificado el valor máximo de almacenamiento dinámico?

  1. Salga de Weka si se está ejecutando.

  2. Cd en /Applications/weka-XXX.app/Contents, o en cualquier lugar donde se instaló su ejecutable weka. Habrá un archivo llamado Info.plist allí. Es un archivo de texto XML. Le sugiero que guarde una copia en otra ubicación, ya que deberá editarla en el siguiente paso.

  3. Abra el Info.plist (XML) en su editor de texto favorito y busque un bloque que diga "VMOptions". Debe haber un valor que diga "-Xmx256M" o algo similar que especifique el tamaño máximo de almacenamiento dinámico . Debe cambiar ese valor a algo más grande, como "-Xmx1024M".

  4. Inicia Weka.


Si está utilizando Weka 3.8.1 en Windows, puede ahorrarse muchos problemas editando el parámetro javaOpts . El parámetro maxheap ya no se usa, por lo que puede configurar javaOpts como este en el archivo RunWeka.ini :

javaOpts= -Xmx1040m

Donde 1040m es la cantidad de memoria que desea asignar.

Tenga en cuenta que el archivo distingue entre mayúsculas y minúsculas.

Hay muchas formas de configurar esto, pero esta es la forma más rápida de hacer que Weka se ejecute en un entorno Windows en esta versión.

Edición: si desea que Weka use más de 1 1gb en Windows, necesita tener instalado JDK. JRE regular no lo hará.


También deberías ver si el tamaño de pila de hilos por defecto de 20MB es suficiente. Aumente el valor a 50 MB en el archivo /Aplicaciones/weka-3-8-1-oracle-jvm.app/Contents/Info.plist (en MAC) como a continuación:

<string>-Xss50M</string>


Weka 3.9.2 también ya no tiene la opción de maxheap. RunWeka.ini tiene la opción de javaOpts, por lo que puede cambiar lo siguiente a su asignación de memoria requerida,

javaOpts=%JAVA_OPTS% ---- > javaOpts= -Xmx1024m

Aquí 1024m es la cantidad personalizada de memoria que desea asignar.


-classpath especificar una ruta de -classpath después de -classpath , similar a la variable PATH env que necesita para especificar la ruta donde Java puede encontrar las clases.

La configuración de -Xmx500m se ve bien, excepto que sugeriría usar 512m.