使用ANTLR4时,似乎在【antlr.NewBaseATNConfig】中分配了很多内存。 Google的建议是使用【ParserATNSimulator.clearDFA】,但是此功能已移出。
如果性能要求不高,有什么方法可以减少ANTLR4的内存使用量?
最佳答案
清除DFA仅会暂时帮助您。 ATNConfig实例用于优化解析过程,并且在解析过程中每当通过ATN的新路径用于解析特定输入时自动创建ATNConfig实例。当稍后再次采用同一路径时,它们将被重用,并且在解析器实例之间共享它们以优化所有解析器调用。
我看到的使内存占用量保持较低的唯一方法是使语法尽可能简单,并仅解析变化不大的小片段。
关于go - ANTLR4内存使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64039227/