增加java中的堆大小为weka

我正在尝试增加java中的堆大小,因为weka会不断崩溃。 我使用了建议的行:

> java -Xmx500m -classpath 

但是我收到以下错误:

 -classpath requires class path specification 

我不确定这意味着什么。 有什么建议么?

我发现实际问题'RunWeka.ini''\Program Files (x86)\Weka-3-6' 'RunWeka.ini' '\Program Files (x86)\Weka-3-6' 。 我用记事本打开它,在文件中间有一行'maxheap = 512m'

我将该行改为'maxheap=2000m' ,保存文件并重新加载weka,这解决了我的问题。

我不确定这是否是正确的方法,但它对我有用。

省略-classpath选项。 仅使用-Xmx500m选项。

所以,而不仅仅是:

 java weka.core.Instances data/soybean.arff 

你做:

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

如果您通过某些脚本运行weka(例如RunWeka.bat),那么您需要修改该脚本(使用一些文本编辑器,如记事本)。

在终端中运行此命令:

 java -Xmx1024m -jar weka.jar 

如果你在Windows上使用Weka 3.8.1,你可以通过编辑javaOpts参数来省去很多麻烦。 不再使用参数maxheap ,因此您可以在RunWeka.ini文件中设置这样的javaOpts

 javaOpts= -Xmx1040m 

其中1040m是您要分配的内存量。

请注意该文件区分大小写。

有很多方法可以设置它,但这是让Weka在这个版本的Windows环境中运行的更快方法。

编辑:如果您希望Weka在Windows上使用超过1gb ,则需要安装JDK。 常规JRE不会这样做。

可以在http://weka.wikispaces.com/OutOfMemoryException上找到官方的Weka答案 (适用于所有操作系统和Weka版本)。

如果您在Windows上使用最新的Weka版本, 答案是:

修改RunWeka.ini文件中的maxheap参数。

您需要在-classpath之后指定一个类路径,类似于您需要指定Java可以找到类的路径的PATH env变量。

-Xmx500m设置看起来很好,除了我建议使用-Xmx500m

在Ubuntu上我有同样的问题,但我通过增加用于Java虚拟机的内存量来解决它:weka -m 1024m

对于Mac OS,您必须编辑配置文件以增加Weka UI应用程序的堆大小。

我正在重复我写的内容: 当已经指定了最大堆值时,是否有解决“Java堆空间”内存错误的解决方法?

  1. 如果Weka正在运行,请退出Weka。

  2. cd到/Applications/weka-XXX.app/Contents,或者安装了weka可执行文件的地方。 那里会有一个名为Info.plist的文件。 它是一个XML文本文件。 我建议您将其副本保存到其他位置,因为您需要在下一步中对其进行编辑。

  3. 在您喜欢的文本编辑器中打开Info.plist (XML)文件,然后查找显示“VMOptions”的块。 应该有一个值为“-Xmx256M”或类似的值, 指定最大堆大小 。 您应该将该值更改为更大的值,例如“-Xmx1024M”。

  4. 开始Weka。

我在Windows中运行Weka 3.6。 这就是我做的。 转到Weka安装目录,您将找到RunWeka.bat文件。 在文本编辑器中打开此文件,并在java命令行中添加-Xmx参数。

例如,这设置为4GB内存,%_ java%-Xmx4096m -classpath。 RunWeka -i。\ RunWeka.ini -w。\ weka.jar -c%_cmd%“%2”

官方的Weka答案是正确的……但是….至关重要的是首先摆脱所有JVM文件并安装相关的32或64位Java版本。 不使用相关版本会导致许多问题,包括不可能将堆增加到超过1024米(通过更改ini文件)。

Weka 3.9.2也没有maxheap选项了。 RunWeka.ini可以选择javaOpts,所以你可以将下面的内容改为你需要的内存分配,

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

这里1024m是您要分配的自定义内存量。

使用此命令执行此操作的最佳方法

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

上面的答案太旧了(最后一个是1年前)。 我在Windows 10上遇到了与WEKA(版本3.8.1)相同的问题。

我有一个更新堆大小的问题,我修复它的方法是添加一个环境变量(在控制面板下),如下所示:

 JAVA_OPTS = -Xms30000m -Xmx30000m 

提示 :只需确保RunWeka.ini正在使用此环境变量。

在上面的例子中,我给了WEKA 30GB。 有用。

希望它对某些人有所帮助。

您还应该看到默认的线程堆栈大小是否足够20MB。 在文件/Applications/weka-3-8-1-oracle-jvm.app/Contents/Info.plist(在MAC上)将值增加到50MB,如下所示:

 -Xss50M 

如果我们使用Weka Workbench CLI或Knowledge explorer,我们需要更改如下。

正如文档所示,运行时参数应为-Xmx [size_required] m,其中[size_required]是您打算保留的内存大小,以避免内存exception。

打开RunWeka.ini

定义maxheap = [size_required] G.

在我的情况下,我保持maxheap = 4G,一个可以设置为maxheap = 4096m 并将-Xmx#maxheap#添加到#signs (前缀为“cmd_”)的所有运行选项旁边的java命令,如下所示

 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 

通过重新启动Weka和Help >> SystemInfo来validation相同