我试图用ANTLR解析大文件(200MB(,但我遇到了serios内存问题。是否可以释放一些收集的令牌,使我能够解析大型文件?我只对解析感兴趣(用于语法检查器(,我并不真正需要令牌,但我怀疑它们是内存消耗者。
有一个名为setBuildParseTree的Parser方法,它跳过构建上下文等。
Parser tp = new <ConcreteLanguageParser>(tokenstream);
tp.setBuildParseTree(false);
它将减少消耗。
此外,还有一个内存使用率较低的鹿角叉:https://github.com/tunnelvisionlabs/antlr4/