尽管有空间,但无法保留内存

尽管有空间,但无法保留内存

我正在尝试使用 Weka (http://www.cs.waikato.ac.nz/ml/weka/) 在 64 位 Windows 7 系统上,该系统本质上非常受内存限制。问题是我的电脑有 8GB RAM,而我的任务管理器显示只分配了 1.5。即便如此,当我尝试运行 Weka 时,它应该只使用其中的 3 GB,但它失败了,并出现以下错误:

Error occurred during initialization of VM
Could not reserve enough space for 3072000KB object heap

有想法吗?

答案1

VM 初始化过程中发生错误

无法为 3072000KB 对象堆保留足够的空间

你需要增加最大堆大小JVM。

尝试:

java -Xmx4g ...

笔记:

  • 您还需要确保安装了 64 位版本的 JVM。

内存不足异常

大多数 Java 虚拟机仅分配一定的最大内存量来运行 Java 程序。通常,这比计算机中的 RAM 量要少得多。但是,您可以通过设置适当的选项来扩展虚拟机可用的内存。例如,使用 Sun 的 JDK,您可以使用

java -Xmx512m ...

将最大 Java 堆大小设置为 512MB。您可以将-Xmx2g其设置为 2GB。

有关这些选项的更多信息,请关注关联

笔记:

不要使用该-Xms参数,因为这会很快导致 OutOfMemoryException。

如果你在 Windows 下使用 WEKA,并从“开始”菜单启动 WEKA,请查看调用部分Java虚拟机文章中解释了为了给 WEKA 更多的内存你必须编辑哪些文件(RunWEKA.bat 或 RunWEKA.ini,取决于你的版本)。

但请记住,您的硬件架构和/或操作系统将限制您可以分配的内存量(请参阅 Java 虚拟机文章的 32 位和 64 位部分)。

来源内存不足异常


我可以检查 WEKA 有多少可用内存吗?

您可以轻松检查 WEKA 可以使用多少内存(这取决于 Java 虚拟机启动时的最大堆大小)。

  1. 开发者版本
    • 启动 SimpleCLI
    • 运行以下命令:
    • java weka.core.系统信息
    • 属性 memory.max 列出了 WEKA 可用的最大内存量
  2. 书籍版本(和开发者版本)
    • 启动资源管理器
    • 在日志面板中单击鼠标右键
    • 选择内存信息将信息输出到日志

万一遇到 OutOfMemoryException,则必须增加最大堆大小。您可以分配多少,很大程度上取决于操作系统和底层硬件(请参阅Java虚拟机文章)。另外,请查看内存不足异常部分进一步说明。

来源我可以检查 WEKA 有多少可用内存吗?


进一步阅读

相关内容