【问题标题】:How to initialise JVM with larger maximum heap size using rJava如何使用 rJava 初始化具有更大最大堆大小的 JVM
【发布时间】:2015-07-24 13:59:13
【问题描述】:

我正在尝试使用 rJava 包在 R 中使用斯坦福 NLP 工具 (Java)。尝试创建 StanfordCoreNLP 对象时出现以下错误:

.jnew("edu/stanford/nlp/pipeline/StanfordCoreNLP", props) 中的错误:java.lang.OutOfMemoryError: Java 堆空间

为了解决这个问题,我尝试使用以下代码的变体以更大的最大堆大小初始化 JVM:

.jinit(parameters=c("-Xms1g","-Xmx4g"))

当使用-Xmx1g 将最大堆设置为 1GB 时,JVM 会加载,但我继续收到 OutOfMemoryError。当最大堆大小设置为 2 或 3 GB(-Xmx2g-Xmx3g)时,R 将停止响应。当设置为 4GB 或更高时-Xmx4g 我将收到以下消息:

.jinit 中的错误(parameters = c("-Xms1g", "-Xmx4g"), force.init = TRUE):无法创建 Java 虚拟机 (-6)

如何使用 rJava 成功地将 JVM 初始化为大于 1GB 的值?我正在使用 32 位版本的 Java (v8 u51) 和 R (v3.2.0)

【问题讨论】:

    标签: r jvm stanford-nlp rjava


    【解决方案1】:

    我使用的是 32 位版本的 Java (v8 u51) 和 R (v3.2.0)

    那是你的问题。切换到 64 位版本。

    【讨论】:

    • 好的,阅读了更多关于这个主题的内容,你是对的(这个问题的总结很好:link)。令人沮丧的是,这可能需要另一个问题,因为我首先使用的是 32 位版本,因为需要访问只有 32 位 ODBC 驱动程序的数据库,其中所有建议都是“只使用 32 位版本”。
    • 我和@littlefeltfangs 的情况一样,我无法选择使用 64 位,而且在 32 位版本中没有任何解决方案非常令人沮丧
    猜你喜欢
    • 2010-12-29
    • 2018-04-14
    • 1970-01-01
    • 2013-01-01
    • 2016-06-22
    • 1970-01-01
    • 2019-03-21
    • 2010-09-30
    相关资源
    最近更新 更多