【问题标题】:Eclipse Stanford CoreNLP execution error "Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded"Eclipse 斯坦福 CoreNLP 执行错误“线程“主”java.lang.OutOfMemoryError 中的异常:超出 GC 开销限制”
【发布时间】:2025-12-18 13:20:06
【问题描述】:

您好,我正在尝试来自 stanford CoreNLP 官方网站的简单示例:https://stanfordnlp.github.io/CoreNLP/api.html

***** TokensRegexNERAnnotator ner.fine.regexner:从 2 个文件中读取 585586 个唯一条目 线程“主”java.lang.OutOfMemoryError 中的异常:超出 GC 开销限制 在 java.util.LinkedHashMap.newNode(Unknown Source) *****

我已经尝试了网上所有可用的解决方案,但我无法解决问题 我曾尝试通过增加 eclipse.ini 文件中的内存大小来尝试将 -Xms1024m 放入运行配置参数中。 我正在研究我的论文工具,请帮帮我,我被卡住了 我正在使用日食氧气和 stanford-corenlp-3.9.0

谢谢!

【问题讨论】:

  • 先尝试使用更多内存。 1GB 对于 NLP 来说并不算多,NLP 相当消耗内存。
  • eclipse.ini 中的内存大小是 Eclipse 用于其自己的代码的大小。当您运行程序时,内存大小在程序的“运行配置”中指定。
  • 好的,我正在等待
  • 哦,不,通过在运行配置参数中更改为 -Xms2048m 它只是从几行开始处理,但经过几次处理后仍然出现相同的错误
  • TokensRegexNERAnnotator ner.fine.regexner: 从 2 个文件中读取 585586 个唯一条目添加注释器解析从序列化文件 edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz 加载解析器 ... 完成 [ 0.7 秒]。在线程“main”java.lang.OutOfMemoryError 中添加注释器 dcoref 异常:超出 GC 开销限制

标签: java eclipse out-of-memory stanford-nlp


【解决方案1】:

Eclipse 是一个 IDE。与你的问题无关。

这是一个 JVM 运行时问题。

你需要回答几个问题:

  1. 您正在运行哪个版本的 JDK? JDK 8 消除了 perm gen 并为内存模型添加了元空间。
  2. 您运行的是 64 位 JVM?
  3. 您是否使用 Visual VM 分析了您的应用程序以了解内存中的世代在做什么?

您可以将最大堆大小增加到 1GB 以上。

【讨论】:

  • 我想我有 JDK 8 和 64 位 JVM,但你能告诉我如何检查你要求的这些东西吗?
  • 谷歌搜索并阅读 JDK 8 内存配置:blog.sokolenko.me/2014/11/javavm-options-production.html
  • 最终通过在运行配置参数中更改为 -Xms3056m 完成,但它挂起我的笔记本电脑,但它完成了任务.. hurryyy 但你知道任何其他解决方案,因为我的 RAM 只有 4 GB,如果我给 3 GB 来编程我的其他工作挂起
  • 您需要更多内存。停止在您的笔记本电脑上运行的所有其他程序,包括 Eclipse。这是一个很大的内存猪。在 Eclipse 之外运行。
【解决方案2】:

最终通过在运行配置参数中更改为 -Xms3056m 来完成,这意味着我需要更多 RAM,因为 NLP 需要大量 RAM 来执行和计算

【讨论】:

    最近更新 更多