go - ANTLR4内存使用情况

标签 go memory antlr4

使用ANTLR4时,似乎在【antlr.NewBaseATNConfig】中分配了很多内存。 Google的建议是使用【ParserATNSimulator.clearDFA】,但是此功能已移出。
如果性能要求不高,有什么方法可以减少ANTLR4的内存使用量?

最佳答案

清除DFA仅会暂时帮助您。 ATNConfig实例用于优化解析过程,并且在解析过程中每当通过ATN的新路径用于解析特定输入时自动创建ATNConfig实例。当稍后再次采用同一路径时,它们将被重用,并且在解析器实例之间共享它们以优化所有解析器调用。
我看到的使内存占用量保持较低的唯一方法是使语法尽可能简单,并仅解析变化不大的小片段。

关于go - ANTLR4内存使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64039227/

相关文章:

java - 如何将用 SQL 编写的存储过程转换为 Java。得到了ANTLR的引用

go - 如何使用结构更新多个属性

csv - 同时创建和写入两个CSV golang

c - 为什么变量的地址变小了?

MySQLTuner 1.5 最大可能内存使用冲突信息

go - 我正在使用 Antlr4 创建一种语言,然后我想用它生成 LLVM IR。我是否需要手写 LLVM IR 来响应我的访问者事件?

go - 当它可能是 net.UDPAddr 或 net.TCPAddr 时如何从 net.Addr 获取 IP 和端口

windows - 如何使用 golang 在 Windows 上获取正确的文件基名

memory - 如何检查已编译类型的表示?

ANTLR4 语法不识别 bool 文字