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 archivoRunWeka.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?
Salga de Weka si se está ejecutando.
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.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".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.