首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ANTLR4内存清理

ANTLR4内存清理
EN

Stack Overflow用户
提问于 2015-02-25 16:29:19
回答 2查看 1.7K关注 0票数 3

是否可以解分配/重置/压缩由ANTLR分配的内存?

我已经使用了ParserATNSimulator.clearDFA(),但是仍然分配了一些巨大的对象(例如,ArrayPredictionContextSingletonPredictionContext)。

我的程序交替进行解析和计算阶段。在两个解析阶段之间,我希望减少ANTLR的内存占用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-03 22:58:55

如果我替换解析器和lexer的缓存,这些数据结构和一些静态字段之间就没有更多的路径。因此,垃圾收集器可以收集它们。

代码语言:javascript
复制
lexer.setInterpreter(new LexerATNSimulator(lexer, lexer.getATN(), lexer.getInterpreter().decisionToDFA, new PredictionContextCache()));
parser.setInterpreter(new ParserATNSimulator(parser, parser.getATN(), parser.getInterpreter().decisionToDFA, new PredictionContextCache()));
票数 4
EN

Stack Overflow用户

发布于 2015-02-25 18:08:06

有意思的。答案是否定的,我现在会说。我将在https://github.com/antlr/antlr4上添加一个问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28724334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档