ANTLR4内存使用情况

问题描述

使用ANTLR4时,似乎在[antlr.NewBaseATNConfig]中分配了很多内存。 Google的建议是使用【ParserATNSimulator.clearDFA】,但是此功能已移出。

如果对性能的要求不高,是否有任何方法可以减少ANTLR4的内存使用?

解决方法

清除DFA仅会暂时帮助您。 ATNConfig实例用于优化解析过程,并且在解析过程中每当采用通过ATN的新路径来解析特定输入时自动创建ATNConfig实例。稍后再次使用同一路径时,它们将被重用,并且在解析器实例之间共享,以优化所有解析器调用。

我看到的使内存占用量保持较低的唯一方法是使语法尽可能简单,并仅解析变化不大的小片段。